django-模板相关
{{ }} 变量 {% %} tag 逻辑相关
render(request,'xx.html',{'k1':v1})
{{ k1 }} {{ request }}
1 .取值
.索引 key 属性 方法
优先级: key > 属性 方法 > 索引
2 过滤器
{{ 变量|过滤器 }} {{ 变量|过滤器:参数 }}
default:'默认值' 不存在为空使用
date:'Y-m-d H:i:s' 转换时间
safe
3 标签
{% for i in list %}
{{ i }} {{ forloop.counter }}
{% endfor %}
{% if 条件 %} 不支持算法运算 不支持连续判断
{% elif %}
{% else %}
{% endif %}
{% csrf_token %} 一个隐藏的input的标签 name='csrfmiddlewaretoken' 64长度
4 静态文件配置
{% load static %}
{% static '静态文件的相对路径' %}
5 模板和继承
母版:
1 提取多个页面的公共部分 ->html文件种 base.html
2 在html页面种定义钩子 block
继承:
1 {% extends 'base.html' %}
2 重写block快
注意点:
1 {% extends 'base.html' %}写在第一行
2 {% extends 'base.html' %} 'base.html'带引号
3 要显示的内容写到block中
4 多定义block快 css js
6 组件 include
一小段html代码段 nav.html
{% include 'nav.html' %}
7 3个自定义的方法
filter simple inclusion_tag
步骤:
1 在app下创建一个templatetags的包
2 在包下创建py文件 my_tags.py
3 在py文件写
from django.template import Library
register = Library()
4 写函数+加装饰器
@register.filter
def addxx_filter(value,arg): # 过滤器最多2个参数
return 任意值
@register.simple
def addxx_simple(*args,**kwargs):
return 任意值
@register.inclusion_tag("模板文件名")
def show_li(num):
return {'num':range(1,num+1)}
写模板
{% for i in num %}
{{ i }}
{% endfor%}
5 使用
{% load my_tags %}
{{ 'xx'|addxx_filter:'11' }} -任意值 if 变量|addxx_filter
{% addxx_simple 'xx' '11' k1=v1%}
{% show_li 3 %} 1 2 3 的结果

浙公网安备 33010602011771号