- {{...}} :变量标签
相关代码
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晓码阁 版权所有