Django 模板笔记

模板

定义模板

变量:视图传递给模板的数据,要遵循标识符规则
语法:{{ var }}
注意:如果变量不存在,则插入的是空字符串
在模板中使用点语法:
1:字典
2:属性或者方法
3:数字索引
在模板中调用对象中的方法,不能传递参数

标签

语法:{% tag %}
作用:
1:在输出中创建文本
2:控制逻辑或者循环

if标签

格式:{% if 表达式 %}语句{% endif %}
{% if 表达式1 %}语句{% elif 表达式2 %}语句2{% endif %}

for

格式:
{% for 变量 in 列表 %}语句{% empty %}语句2{% endfor %}
注意:
列表为空或不存在时执行语句2
例:

def Grades(request):
    gradelist=grades.objects.all()
    return  render(request,'app1/grades.html',{"grades":gradelist})



    
    


班级表

学生

    {% for stu in grades %}
  • {{ forloop.counter }}-- {{ stu.gname }}
  • {% empty %}

    没有

    {% endfor %}

comment

作用:注释多行
格式:
{% comment %}
{% endcomment %}

ifequal、ifnotequal

作用:判断是否相等或者不相等
格式:
{% ifequal 值1 值2%}
语句
{% endifequal %}
如果值1等于值2则执行语句

include

作用:加载模板并以标签内的参数渲染
格式:{% include '模板目录' 参数1 参数2 %}

url

作用:反向解析
格式:{% url 'namespacename' p1 p2 %}

csrf_token

作用:用于跨站请求伪造保护
格式:{% csrf_token %}

block,extends

作用:用于模板的继承

autoescape

作用:用于HTML转义

过滤器

语法:{{ var过滤器 }}
作用:在变量被显示前修改它

lower

upper

过滤器可以传递参数

join
格式:列表|join:"#"
例:

def Grades(request):
    gradelist=grades.objects.all()
    return  render(request,'app1/grades.html',{"grades":gradelist,"list":["xob","handsome"]})

{{list|join:"#"}}

default

如果一个变量没有被提供,或者值为false,空的。可以使用默认值
格式:{{变量名|default:"不存在时返回值"}}
实例:

{{text|default:"不存在"}}


如果text存在则返回text,若不存在则返回不存在

date

根据给定格式转换日期为字符串
格式:{{datevalldate:'y-m-d'}}

escape

HTML转义

加减乘除

例:

num={{text|add:10}}

num2={{text|add:-10}}

{# 相当于num/1*5#}

num3={% widthratio text 1 5 %}

{#相当于num/5*1#}

num4={% widthratio text 5 1 %}

注释

单行注释
语法:{# 注释内容 #}
多行注释
语法:{% comment %}
{% endcomment %}

反向解析

path('', include(app1.urls,namespace="Myapp")),
re_path('^good/(\d+)/$', views.good,name="good"),
连接

模板继承

作用:模板继承可以减少页面内容的重复定义,实现页面重用

blcok标签

在父模板中预留区域,子模板填充

extend标签

格式:{% extends "父模板路径"%}
继承模板,需要写在模板文件的第一行
实例:
定义一个父模板




    
     
    Title


 
 
{% block main %}{# block 后的名与子模板相对应 #} {% endblock main %}

定义一个子模板

{% extends "app1/base.html" %}
{% block main %}
    

xob is a handsome boy

{% endblock main %}

你可能感兴趣的:(Django 模板笔记)