栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django模板

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django模板

Django模板

模板中变量使用了双括号,需要向Django说明模板文件的途径。

Django模板标签

变量 模板语法:

view {"HTML 变量名":"views 变量名"}

HTML:{{变量名}}

列表

在Django中,可以使用.索引下标取出对应的元素

字典

可以用.键取出对应值

过滤器   模板语法

{{变量名| 过滤器:可选参数}}

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下显示:

{{name|lower}}

变量被过滤器lower处理后,文档大写转换为小写。

过滤管道可以被”套接“,既是说,一个过滤器管道的输出可以作为另一个过滤器管道的输入。

有些过滤器有参数,过滤器的参数是跟随冒号之后并且总是以双引号包含。

{{bio|truncatewords:"30"}}

其他过滤器:

addslashes:添加反斜杠、单引号或者双引号前面。

date:按指定的格式字符串参数格式化date或者datetimej对象。

length:返回变量的长度。

default

default为变量提供一个默认值;

如果views传的变量的布尔值为false,则使用指定的默认值。

length

返回对象的长度,一般适用于字符串和列表。

字典返回的是键值对的数量,集合返回的是去重后的长度。

filesizeformat

以更易读的方式显示文件的大小。

字典返回的是键值对的数量,结合返回的 是去重后的长度

date

根据给定格式对一个日期变量进行格式化

格式:Y-m-d H:i:s 返回年-月-日 小时-分钟-秒的格式时间

truncatechars

如果字符串包含的字符总个数多于指定的字符数量,那么会被截断掉后面的部分。

截断的字符串会以...结尾

safe

将文件标记为安全,不需要转义。

要保证views.py传过来的数据绝对安全,才能用safe。

和后端的views.py的mark_safe效果相同。

Django会对views.py传到HTML文件中 的标签语法进行转义,令其语法失效。加safe会过滤器是告诉Django该数据是安全的,不需要转义,可以让该数据语义生效。

if/else标签

基本语法格式如下:

{% if condition %}

... display

{% endif %}

根据条件判断是否输出,if/else支持嵌套

{%if%}标签接受and,or或not关键字来对多个变量进行判断。或者对变量取得反(not)。

for标签

{%for%}允许我们在一个序列上迭代。

与python中的for语法相似,循环语法是for X in Y, Y是要迭代的序列而X 是在每一个特定的循环中使用的变量名称。每一次循环中,模板系统会渲染{%for%}和{%endfor%}之间的全部内容。

遍历字典:可以直接用字典.items方法,用变量的解包分别获取键和值。

循环标签里可以用{{forloop}}变量来获取循环序号。

{%empty%}

 可选的{%empty%}从句:在循环为空的时候执行(即in后面的参数布尔值为false)

ifequal/inotequal标签

{%ifequal%}标签比较这两个值,当他们相等时,显示在{%ifequal%}和{%endifequal%}中间的所有值。

注释标签

{#这是一个注释#}

include标签

{%include%}标签允许在模板中包含其他的模板的内容。

csrf_token

csrf_token用于form表单中,租用是跨站请求伪造保护。

如果不用这个标签,在使用form表单时,要再次跳转页面就会报403权限错误。

用了{%csrf_token%}标签,在form表单提交数据的时候,才会成功。

解析:首先,向服务器发送请求,获取登录页面,此时中间件csrf会自动生成一个隐藏的input标签,该标签里的value值是一个随机的字符串,用户获取到登录页面的同时也获取到了这个隐藏的input的标签。

自定义标签和过滤器

1、在应用目录下创建templatetags目录。 

2、在templatetags目录下创建任意py文件,如my_tags.py。

3、my_tags.py代码如下:

from django import template

register = template.Library()  # register的名字是固定的,不可改变

4、利用装饰器@register.filter自定义过滤器。

转义:装饰器的参数最多只能有2个。

5、利用装饰器@register.simple_tag自定义标签

6、在使用自定义标签和过滤器前,要在html文件body的最上方中导入该文件。

7、在html中定义过滤器。

8、在html中使用自定义标签。

9、语义化标签。

配置静态文件

1、在根目录下创建statics目录。

2、在settings文件的最下方配置添加以下配置。

3、在statics目录下创建css目、js目录、images目录、plugins目录,分别存放css文件、js文件、图片、插件。

4、把bootstrap框架放入插件目录plugins。

5、在HTML文件的head标签中引入bootstrap。

模板继承

模板可以用继承的方式来实现复用,减少冗余内容。

网页的头部和尾部内容一般都是一致的,我们就可以通过模板继承来实现复用。

父模板用于放置可重复利用内容,子模板继承父模板的内容,并放置自己的内容。

父模板

标签block...endblock:父模板中的预留区域,该区域留给子模版补充差异性的内容,不同预留区域的名字不能相同。

子模板

子模板使用extends继承父模板。

子模版如果没有设置父模板中的预留内容,则使用在父模板中的设置的默认内容,当然也可以都不设置,就为空。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号