模板
默认配置下,django的模板系统会自动找到app下面的templates文件夹中的模板文件。
1.新建项目及app
2.设置settings.py
3.编辑模板文件
进入mysite\learn 新建一个templates文件夹,在其中新建一个home.html文件
4.编辑mysite\learn\views.py
5.编辑mysite\urls.py
6.运行服务器
总结:
1.django查找模板的过程,是在每个app的templates文件夹中找,而不只是在当前app的templates文件夹中找。各个app的templates形成一个文件夹列表,django遍历这个列表,一个一个文件夹进行查找,当在某一个文件夹中找到的时候就停止,所有的都遍历完了还找不到指定的模板的时候就是Template Not Found。
2.优点:一个app可以用另一个app的模板文件
缺点:有可能会找错
3.解决方案:在每个app的templates文件夹中再建一个app名称的文件夹,将仅和该app相关的模板放在app\templates\app目录下。
例如:在tutorial\templates下新建tutorial文件夹,此时views.py中就填写 render(request,‘tutorial\home.html’)
模板进阶
1.在网页上显示一个字符串
(1)修改模板文件
(2)修改views.py文件
通过视图,向模板home.html传递了一个字符串,其名称是string。
(3)运行服务器
2.使用for循环和显示list内容
(1)修改模板文件
(2)修改views.py文件
(3)运行服务器
3.显示字典中内容
(1)修改模板文件
(2)修改views.py文件
(3)运行服务器
4.结合if和for的操作
(1)修改模板文件
注意有逗号
(2)修改views.py文件
map(str,range(100)):对range(100)各项进行str操作
(3)运行服务器
发现多了一个逗号,怎么改进呢?
改进:
views.py文件不变,修改模板文件
forloop.last 判断是不是最后一项,不是最后一项才加逗号。
发现逗号没了
5.避免链接硬编码
在模板中使用:
不带参数的:{% url ‘name’ %}
带参数的:{% url ‘name’ 参数 %}
这样,就不会写死网址,以后在修改urls.py、models.py时,获取的网址会动态的跟着变化。
6.模板中的逻辑操作
== != >= <= < > 这些比较都可以在模板中使用(比较符前后至少有一个空格)。
and or not in not in 也可以在模板中使用。
(1)判断num是不是在10到100之间。
(2)判断‘woxihuanxian’ 是不是在列表变量List中。
7.获取当前网址,用户等信息
来源:CSDN
作者:L*YUEYUE
链接:https://blog.csdn.net/weixin_41708548/article/details/104101676