Python——Django框架(十一)
一、HTML插件
1、插件
前面讲的,Form组件的字段,本质上不仅只是有正则表达式,还有HTML插件。比如写了这么一段代码,除了可以验证外,页面上还能显示相对应的框框,这就是引用了插件。
这里可以看下源码:
可以看到,是带有 select 插件。看看插件的源码:
这里就能看到插件源码里面,return了前端的代码,中间预留了空位,是准备做字符串格式化的。
2、插件的自定义属性
前端代码:
可以看到,后端这么写,能给前端插入一些自定义属性。
3、后端返回前端代码生成前端样式
后端可以 return 前端代码,但是这么直接使用,是不能生成前端样式的,因为Django自带了保护,不让你随便的生成前端样式,但是还是能够实现:
后端代码:
方式一: safe
在前端使用的时候,加个管道符 | ,后面写 safe ,就能生成( |safe )
方式二:mark_safe
导入模块
然后看效果:
4、Django的内置插件
重点看 TextInput 就行。
5、常用选择插件
二、动态绑定数据
1、实时更新数据
基于上面的插件,当有特殊的单选或者多选时,数据源能否实时更新?
举个例子:
然后数据库目前就两条数据,看页面:
然后数据库加数据:
这时页面的数据还是两条,让它有三条的办法一个是重新运行,但这明显不现实。
但是可以给我们的类添加一些代码,让它每次刷新页面的时候,能够重新获取数据源:
这部分代码,主要是每次刷新页面的时候,都重新执行了__init__方法,重新获取一次数据库的数据源,这样就不需要重新运行。当然还能优化一下代码:
注意:super必须放在 self.fields的上面。super 这一句,会拷贝所有的静态字段,赋值给 self.fields,如果是没赋值之前,是找不到的,会被错。
转载:https://blog.csdn.net/qq_41824825/article/details/116355607