模板层(模板语法)
模板语法传值
模板语法过滤器(内置方法)
模板语法标签(流程控制)
自定义过滤器和标签(了解)
模板的导入与继承(面向对象)
https://www.cnblogs.com/Dominic-Ji/articles/11109067.html#_label15
注释
浏览器能够查看
{#模板语法注释#} 浏览器查看不了
def reg(request):
# python基本数据类型
f = 1.1
i = 11
s = 'hello world'
l = [11,22,33,44]
d = {'username':"jason",'password':123}
t = (11,22,33,44,55,66,77)
se = {11,22,33,44,55,66}
b = True
# 函数(自动加括号调用函数 展示的是函数的返回值)
def func(args): # 模板语法不支持给函数传递额外的参数
print('from func')
return '下午有点困'
# 面向对象
class MyClass(object): # 自动加括号实例化产生对象
def get_obj(self):
return 'from obj'
@classmethod
def get_cls(cls):
return 'from cls'
@staticmethod
def get_func():
return 'from func'
obj = MyClass()
# 1.指名道姓的传(需要传的值较少)
# return render(request,'reg.html',{…})
# 2.一次性批量传(效率偏低) 为了教学方便我们使用locals居多
# return render(request, 'reg.html',locals())
return render(request,'reg.html',locals())
取值只能使用句点符(.)
{{ l.0 }}
{{ d.username }}
{{ d.hobby.3.addr }}
过滤器: 管道符 左侧当做过滤器的第一个参数 右侧有时候还可以支持再传一个参数(冒号开头)
统计长度:{{ l|length }}
自增运算:{{ i|add:123 }}、拼接操作:{{ s|add:'去你妹的' }}
日期转换:{{ ctime }}、{{ ctime|date:'Y-m-d' }}
文件大小:{{ file\_size|filesizeformat }}
截取字符(三个点也算):{{ desc|truncatechars:6 }}
截取单词(三个点不算):{{ desc|truncatewords:3 }}
切片操作:{{ s|slice:'0:4' }}
默认值(判断布尔值):{{ b|default:'这个东西布尔值是False' }}
文本转义:{{ ht|safe }}
文本转义:{{ xss }}
文本转义:{{ ht1 }}
后端转义
from django.utils.safestring import mark_safe
ht1 = '
{{}} 变量相关(引用变量值)
{%%} 逻辑相关(流程控制 模块方法)
标签: 流程控制
{% for i in lll %}
{% if forloop.first %}
这是我的第一次循环
这是我的最后一次循环
{{ i }}
该对象里面没有值
1.在应用下创建一个名字必须叫templatetags文件夹
2.在该文件夹内创建一个任意名称的py文件
3.在py文件内必须要书写两行固定的代码
from django.template import Library
register = Library()
@register.filter(is_safe=False,name='aaa')
def my_plus(a,b):
return a + b
@register.simple_tag(name='bbb')
def func(a,b,c,d):
return '%s-%s-%s-%s'%(a,b,c,d)
@register.inclusion_tag(filename='ccc.html',name='myinc')
def index(n):
new_l = ['第%s页'%i for i in range(1,n+1)]
return locals()
需求
页面主体不变 部分区域变化
模板继承
1.需要现在母版中使用block提前划定区域
{% block 区域名称 %}
{% endblock %}
2.在子版中先继承再局部替换
{% extends '模版.html' %}
{% block 区域名称 %}
{% endblock %}
总结
模板一般情况下都应该至少含有三个区域
css区域
content区域
js区域
补充
{{ block.super }} 调用模版内容
{% include 'myform.html' %}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章