建立path,建立view
def review(request):
import time
'''模板语法'''
num1=22
num2=11
strl='123'
array=['a','b','c']
dictl={'h':'head','b':'body','c':'content'}
return render(request,'grammar.html',{'n1':num1,'n2':num2,'n3':strl,'n4':array,'n5':dictl})
后面的字典可以写成如下格式,提出来写
info={
'n1':num1,
'n2':num2,
'n3':strl,
'n4':array,
'n5':dictl,
}
return render(request,'grammar.html',info)
直接看grammar.html的代码,【拼接html和python】
<body>
<h1>Django模板语法</h1>
<div style="border: 2px solid pink"><!--django只提供了加法,并未提供其他的运算-->
数字:{{ n1 }}+{{ n2 }}={{ n1|add:n2 }}<br>
数字:{{ n1 }}-{{ 10 }}={{ n1|add:-10 }}<br>
数字:{{ n1 }}/{{ n2 }}*1={% widthratio n1 n2 1 %}<br>
数字:{{ n1 }}*{{ n2 }}={% widthratio n1 1 n2 %}<br>
字符串:0下标的字符{{ n3.0 }};{{ n3 }}<br>
列表: 列表0下标{{ n4.0 }}<br>
字典:字典键为h的值{{ n5.h }}<br>
</div>
<div style="border: 2px solid green">
<h3>遍历列表</h3>
{% for i in n4 %}
{{ i }}
{% endfor %}
<hr>
<h3>遍历字典</h3>
{% for k,v in n5.items %}
{{ k }}:{{ v }}<br>
{% endfor %}
</div>
</body>
</html>
{{ n1|add:-n2 }} 会报错
{% widthratio n1 n2 n3 %} 计算方式是【n1/n2*n3】
模板语法中不支持使用括号,所以访问字符或列表或字典均用【.】
{{中不支持运算,仅打印变量}}
<div>
{% if n1 > 20 %}
{{ n1 }}
{% else %}
{{ n1|add:10 }}
{% endif %}
</div>
if也需要endif
浏览器显示
for遍历整型数据,直接去遍历是不行的
{% for o in ''|center:10 %}
<span>{{ forloop.counter }}</span >
{% endfor %}
分段遍历,开始10,结束20,步长1【与for循环一样】
def in2(request):
start = 10
end = 20
return render(request,'in2.html',{"range":range(start,end,1)})
<body>
{% for i in range %}
<p>{{ i }}</p>
{% endfor %}
</body>
-
HttPResponse【一般用来测试是否连接】
- HttpResponse("内容") :只能有一个参数,并且必须是字符串,当然,你也可以传数值,但最后到达页面也会变成字符串
- HttpResponse("内容1","内容2"...........) : 可以有多个参数,不报错,但是只显示第一个参数。
- HttpResponse() : 可以没有参数,不会报错
-
render【传递参数到html】
- render(request,"模板文件名[.html]",{"time": t})
- render(request,"模板文件名",locals())
return response用locals()将函数内部所有的变量名都传给网页, 包括request
-
redirect【跳转页面】
- redirect("路径") : 页面跳转,相当于在浏览器里面输入“”路径“”,再回车
注:这个跳转是在本窗口跳转的,不会新打开窗口
现在所在页面是127.0.0.1:8080/app01/tianjia/【拆分路径之后要加app的名称,例如app01】
重定向:redirect("/app01/yhgl/")#自动拼接http://127.0.0.1:8080,不拼接app记得要自己添加
重定向后是127.0.0.1:8080/app01/yhgl/