- {{...}} :变量标签
相关代码
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'staticread', 'principle', 'stu' ]
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^staticread/', include('staticread.urls')), url(r'^principle/', include('principle.urls')), url(r'^stu/', include('stu.urls')) ]
urlpatterns = [ url(r'^getdata/$', views.getdata_view), ]
def getdata_view(request): user = User('zhangsan', '123') return render(request, 'list.html', {'user': {'pwd': '456'}, 'obj': user, 'title': 'helloworld', 'today':datetime.datetime.today(), 'hlist': ['a1', 'a2']})
Html页面
<h3>访问字典值</h3> 姓名:{{ obj.uname }},年龄:{{ obj.pwd }} ------{{ user.pwd }} <h3>访问对象属性</h3> {{ today.year }}-{{ today.month }}-{{ today.day }} <h3>访问对象的方法(不能有参数)</h3> {{ title.upper }} <h3>访问列表</h3> {{ hlist.1 }}
输入
http://127.0.0.1:8000/stu/getdata/
测试
- {% ... %} :块标签
相关代码
urlpatterns = [ url(r'^getdata/$', views.getdata_view), url(r'^getdata2/$', views.getdata2_view), ]
def getdata2_view(request): # persons = [{'name':'zs','age':11},{'name':'ls','age':22},{'name':'ww','age':33}] persons = [] items = {'a':1,'b':2,'c':3} return render(request,'list.html',{'person_list':persons,'d':items,'i':250,'name':'<span style="color: red;font-size: 60px;">小李飞刀</span>'})
<h2>for标签</h2> {#(注:循环序号可以通过{{forloop}}显示)#} <h3>循环取值1</h3><hr> {% for item in person_list %} <p>{{ item.name }},{{ item.age }}</p> {% endfor %} <h3>循环取值2:倒序</h3><hr> {% for item in person_list reversed %} <!--序号从1开始--> <p>{{ forloop.counter }}----->{{ item.name }},{{ item.age }}</p> <!--序号从0开始--> <p>{{ forloop.counter0 }}----->{{ item.name }},{{ item.age }}</p> <!-- 序号倒序 --> <p>{{ forloop.revcounter }}----->{{ item.name }},{{ item.age }}</p> {% endfor %} <h3>循环取值3:字典</h3><hr> {% for k,v in d.items %} <p>{{ k }},{{ v}}</p> {% endfor %} <h2>for....empty</h2> {#for 标签带有一个可选的{% empty %} 从句,以便在给出的组是空的或者没有被找到时,进行操作。#} {% for person in person_list %} <p>{{ person.name }}</p> {% empty %} <p>sorry,no person here</p> {% endfor %} <h2>if标签</h2> {#{% if %}支持and or not 条件判断(注意==左右空格)#} {% if i > 300 %} <p>大于{{ i }}</p> {% elif i == 200 %} <p>等于{{ i }}</p> {% else %} <p>小于{{ i }}</p> {% endif %} <h2 style="color: red">自动转义标签</h2> {#- 自动转义:将HTML自动转换成普通字符串输出。不进行标签解析。#} {#< 会转换为<#} {#> 会转换为>#} {#' (单引号) 会转换为'#} {#" (双引号)会转换为 "#} {#& 会转换为 &#} {% autoescape off %} Hello {{ name }} {% endautoescape %} <h2>注释</h2> 单行注释 {#...#} 多行注释 {% comment %}...{% endcomment %} {% comment %} {% for user in users %} {% for k,v in user.items %} {{ forloop.parentloop.counter }} --{{forloop.counter }}--{{ k }}--{{ v }}<br> {% endfor %} {% endfor %} {% endcomment %}
测试结果
注意:那个script脚本攻击,那个自动转义标签十分使用;
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有