{{...}} :变量标签
{% ... %} :块标签
主要用于取值
# 访问字典值
?
render(request,‘list.html‘,{‘user‘:{‘name‘:‘张三‘,‘age‘:10}})
姓名:{{ user.name }},年龄:{{ user.age }}
# 访问对象属性
render(request,‘list.html‘,{‘today‘:datetime.datetime.today()})
{{ today.year }}-{{ today.month }}-{{ today.day }}
# 访问对象的方法(不能有参数)
?
render(request,‘list.html‘,{‘title‘:‘hello world‘})
{{ title.upper }}
# 访问列表
?
render(request,‘list.html‘,{‘items‘:[‘a1‘,‘a2‘]})
?
{{items.1}}
?
?
from django.conf.urls import url
from django.contrib import admin
import views
urlpatterns = [
url(r‘^admin/‘, admin.site.urls),
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‘,‘hlist‘:[‘a1‘,‘a2‘]})
?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table>
<tr>
<td>{{ user.pwd }}</td>
<td>{{ obj.pwd }}</td>
<td>{{ title.upper }}</td>
<td>{{ hlist.1 }}</td>
</tr>
</table>
?
</body>
</html>
?
那块级就更好玩了,可以循环的话,那就是说可以根据出生成
出多个标签之类的吧
(注:循环序号可以通过{{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 %}
?
?
?
for 标签带有一个可选的{% empty %} 从句,以便在给出的组是空的或者没有被找到时,进行操作。
?
{% for person in person_list %}
<p>{{ person.name }}</p>
?
{% empty %}
<p>sorry,no person here</p>
{% endfor %}
?
?
{% if %}支持and or not 条件判断(注意==左右空格)
{% if i > 300 %}
<p>大于{{ i }}</p>
{% elif i == 200 %}
<p>等于{{ i }}</p>
{% else %}
<p>小于{{ i }}</p>
{% endif %}
?
<h3>scrf_token</h3>
<form action="/tag/" method="post">
{% csrf_token %}
<p><input type="text" name="haiyan"></p>
<input type="submit">
</form>
?
?
自动转义:将HTML自动转换成普通字符串输出。不进行标签解析。
< 会转换为<
> 会转换为>
‘ (单引号) 会转换为'
" (双引号)会转换为 "
& 会转换为 &
?
?
?
def getdata_view(request):
?
return render(request,‘list.html‘,{‘hello‘:‘<h1>张杰</h1>‘})
?
{% autoescape off %}
Hello {{ name }}
{% endautoescape %}
?
单行注释 {#...#}
多行注释 {% comment %}...{% endcomment %}
?
{% comment %}
{% for user in users %}
{% for k,v in user.items %}
{{ forloop.parentloop.counter }} --{{forloop.counter }}--{{ k }}--{{ v }}<br>
{% endfor %}
{% endfor %}
{% endcomment %}
原文:https://www.cnblogs.com/Py-king/p/10587991.html