飞道的博客

Python——Django框架(十一)、HTML插件、动态绑定数据

315人阅读  评论(0)

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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场