分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Django web框架之模板

发布时间:2023-09-06 01:19责任编辑:傅花花关键词:暂无标签


1 模板:
什么是模板?
  html+模板语法

  模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签。


2 模板语法:

??1 变量:{{}}
??

深度查询: 通过句点符号 .过滤器 filter{{var|filter_name}}

  


??2 标签: {% tag %}
??

forif else

for标签

遍历每一个元素:

{% for person in person_list %} ???<p>{{ person.name }}</p>{% endfor %}

  

可以利用{% for obj in list reversed %}反向完成循环。

遍历一个字典:

{% for key,val in dic.items %} ???<p>{{ key }}:{{ val }}</p>{% endfor %}

for ... empty

for 标签带有一个可选的{% empty %} 从句,以便在给出的组是空的或者没有被找到时,可以有所操作。

{% for person in person_list %} ???<p>{{ person.name }}</p>{% empty %} ???<p>sorry,no person here</p>{% endfor %}

if 标签

{% if %}会对一个变量求值,如果它的值是“True”(存在、不为空、且不是boolean类型的false值),对应的内容块会输出。

{% if num > 100 or num < 0 %} ???<p>无效</p>{% elif num > 80 and num < 100 %} ???<p>优秀</p>{% else %} ???<p>凑活吧</p>{% endif %}

with

使用一个简单地名字缓存一个复杂的变量,当你需要使用一个“昂贵的”方法(比如访问数据库)很多次的时候是非常有用的

例如:

{% with total=business.employees.count %} ???{{ total }} employee{{ total|pluralize }}{% endwith %}

csrf_token

这个标签用于跨站请求伪造保护

3 自定义过滤器和标签

步骤:1 在settings中的INSTALLED_APPS,是否有当前应用2 在应用中创建一个templatetags3 在templatetags中创建py文件:mytag.py4 在mytag.py中:引入:from django import templatefrom django.utils.safestring import mark_saferegister = template.Library() #register的名字是固定的,不可改变5 定义过滤器和标签@register.filterdef multi(x,y):return x*y@register.simple_tagdef multiTag(x,y,z):return x*y*z6 在引用模板中导入:{% load myTag %}7 调用:过滤器: {{var|filter_name:参数}} # 参数只能是一个标签: {% simple_tag 参数1 参数2 ... %}

 

对比过滤器与自定义标签的使用:
??????????过滤器函数的参数只能有两个,自定义标签无参数限制
??过滤器可以与逻辑标签共同使用,比如if标签。自定义标签不可以。

Django web框架之模板

原文地址:http://www.cnblogs.com/supery007/p/7725299.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved