Django模板
首先什么是一个模板?
2. 模板的设置问题
setting.py中的TEMPLATES配置
1)BACKEND: 指定模板的搜索引擎,不用改动
2)Dirs: 指定模板存放的目录
Dirs=[‘ index.temp’,’music.temp’]
但是,如果Dirs中为空的话,那么django会自动搜索每个应用中的templates的文件夹作为模板的管理目录
推荐:Dirs保持空,但必须在每个应用中,创建一个templates的文件夹
3)APP_Dirs
True : 首先从Dirs中指定的文件夹中查找模板,如果没有找到指定模板的话,则再搜索templates目录
3. 模板的加载方式
HttpResponse() 这是加载字符串的
1. 使用loader 获取模板,通过HttpResponse进行响应
最终返回模板前都是把模板转化为字符串
2. 使用render直接加载
return render (request,’模板名称’,{参数字典})
urlpatterns = [
url( regex,views,kwargs =None,name = None)
]
name: 定义当前url的别名,允许在Template中使用别名来
例如:
urlpatterns = [
url( regex,name = ’my’)
]
在超链接中用得很多
需要使用标签
{% url ‘name值’%} #服务器解析
注意:name别名不能重复定义
url参数
去往show/35地址的页面 #不用别名的条件下写全路由
87 %}’ >去往show/87页面 #传参数,直接在’别名’ 后加空格加参数
模板语法:
1. 变量
作用:允许将后端的数据传递给模板(html),模板中,会根据变量实际值进行显示
1)允许传递给变量的数据类型
数字,字符串,列表,元组,字典,函数,对象(类) (注意:集合不行)
注意:函数一定要返回值
2)如何传递变量到模板中
render
dict={
‘变量1’:’值1’,
‘变量1’:’值1’,
}
return render(request,‘xx.html’,dict)
重点:
如果是传列表,元组,字典等,先组织好数据,再把数据放dict中
例如:
dict ={
‘l’ :list,
‘d’ :dict,
}
或者用locals()将局部变量组织成字典传入参数,对象除外
3)模板中获取变量的值
{{ 变量名称}} #字符串
{{变量名称. key}} #字典
{{类名.方法名 }} #对象
1)什么是标签?
允许嵌套一些服务器段端的逻辑运算到模板中
而变量只管数值,标签管运算
2)语法
{% %}
注意:写的过程运算符,变量都必须用空格隔开
常用标签
1. {% if 条件%} #条件可以用简单逻辑判断,例如 > < == 等等
{% else %}
{% end if %}
接受not, and ,or 运算
但是 and 和 or不能同时出现
以下内容当做False处理:
空[]
空 ()
空{}
数值0
空字符串
None
{% ifequal 值1 值2 %} #判断值1 和值2是否相等,相当于值1 ==值2
{% else %}
{% endifequal %}
2. for标签
{% for 变量 in 列表| 元组 | 字典 %}
{% endfor%}
允许使用的内置变量(免声明):
forloop
1. forloop.counter :记录循环次数,从1开始
2. forloop.counter0 :同上,从0开始
3. forloop.revcounter:记录未被遍历的数量
4. forloop.revcounter0 :同上,从0开始
5. forloop.first : 布尔值,标记是否是第一个项(通常对第一个、最后一个做一些样式设置)
6. forloop.first : 布尔值,标记是否是最后一个项
3.过滤器
在显示变量之前,运行对数据进行筛选或改变
语法:
{{ var | 过滤器}}
常用过滤器:
1. {{var| upper}}
将英文字母改写为大写
2. {{var| lower}}
将英文字母改写为小写
常用的过滤器
1. 加法操作
var|add : ‘ num’
first | add: second #first 和 second 是两个数字类型的列表
2.对小数进行四舍五入(金融和交系统)
var | floatformat:num # num指定保留多少位小数
value | truncatechars:num #num指定保留的字符数
value | truncatewords: num
也可以用css实现
white-space:Nowrap
text-overflow:ellipsis
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。