IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django模板 -> 正文阅读

[Python知识库]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继承父模板。

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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:53:45  更:2021-09-30 11:55:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:54:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码