Django模版渲染
渲染单个对象
{{ context }}
渲染多个对象
{% for i in list %} {{ i }} {% endfor %}
渲染多个对象(字典显示)
姓名:{{ dict.name }} 年龄:{{ dict.age }}
渲染多个对象(for循环)
{% for item in list %} {{ item }}, #注意这有逗号 {% endfor %}
模版上得到视图对应的地址
views.py
def add(request, a, b): c = int(a) + int(b) return HttpResponse(str(c))
urls.py
urlpatterns = patterns('', url(r'^add/(\d+)/(\d+)/$', 'app.views.add', name='add'), )
template/index.html
{% url 'add' 4 5 %}
==, !=, >=, <=, >, < 这些比较都可以在模板中使用
{% if number >= 90 %} 优秀 #当number大于等于90时显示 {% elif var >= 75 %} 良好 #当number大于等于75且小于90时显示 {% else %} 不及格 #当number小于80时显示 {% endif %}
and, or, not, in, not in 也可以在模板中使用
{% if num <= 100 and num >= 0 %} num在0到100之间 {% else %} 数值不在范围之内! {% endif %}
模板中 获取当前网址,当前用户等
语法 | 描述 |
---|---|
{{ request.user }} | 获取当前用户 |
{{ request.path }} | 获取当前网址 |
{{ request.GET.urlencode }} | 获取当前 GET 参数 |
{{ request.path_info }} | 获取当前路由 |
过滤器
模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示
<!-- 变量被过滤器 lower 处理后,文档大写转换文本为小写。--> {{ name|lower }}
过滤管道可以被 套接 ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入
<!--将第一个元素并将其转化为大写--> {{ my_list|first|upper }}
过滤器的参数跟随冒号之后并且总是以双引号包含
<!--这个将显示变量 bio 的前30个词--> {{ bio|truncatewords:"30" }}