过滤器和模板变量
Posted a-runner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤器和模板变量相关的知识,希望对你有一定的参考价值。
小编,最近在学习Django,顺便记录一下。
以下为 常用的过滤器。
模板变量:
模板变量的例子:
1.语法: {{ 变量名 }}
2.命名由字母和数字以及下划线组成,不能有空格和标点符号
3.可以使用字典、模型、方法、函数、列表
4.不要和python或django关键字重名
5.变量和查找
1 safe过滤器 关闭字符串自动转义 就是传入的值里面没有任何特殊字符就会原样输出 若有就会转义输出(列入<br>),且python中的特殊字符无法识别
#"style": "abcdef<br>adasds"
{{ style|safe }}#会输出abcdef
adasds
2 slice过滤器 类似于python的slice 切片(对字符串、元祖、列表操作)
{{ "woaini"|slice:"2" }}#输出wo(默认是从第0位开始到第2位结束,且不包含第二位)
{{ "woshini"|slice:"2:5" }}#输出shi
3 truncatechars_html过滤器 和truncatechars过滤器类似只是不会切割html标签(输出的结果类似)
#"style": "<h1>abcdefadasds</h1>"
{{ style|truncatechars_html:5}}#输出<h1>ab...</h1>
4 random随机返回一个值 随机抽取列表、元祖、字符串中的随机一个数,类似于python中的random模块
<h1>{{ ‘abcdef‘ | random }}</h1> # c
5 关于时间date
{{ now | date:‘Y-m-d H--i--s‘ }}
修改格式 其中i代表分,和python当中的不太一样。 now为变量,注意 :
context={
‘now‘: datetime.datetime.now,
‘name‘: ‘hansha‘,
‘fun‘: fun,}
传入的now应为 datetime模块当中的,小编 第一次穿如time.ctime,再用date过滤器之后就出现空白了。
6 join过滤器 在中间加一些特殊符号 类似于python的join(可以在列表,元祖操作)
{{ "hello"|join:"*" }}#输出h*e*l*l*o
{{ name|join:"-" }}
7 striptags 去掉所有的额HTML标签
<h1>{{ ‘<h1>Hello lala</h1>‘ | striptags }}</h1>
网页展示效果 为 标题类型,去掉html标签,但是效果还是存在的。
-------------------------------------------------------------------------------------------------------------------------------------------------------
我们可以创建许多的app。
我们在每个app中可以指定一个,app_name.
同时,便于我们 重定向,跳转页面。
以下是urls.py中的部分定义
app_name = ‘tem‘
urlpatterns = [
path(‘index/<pk>‘, views.index, {‘switch‘:‘True‘}, name=‘index‘),
path(‘test/<pk>‘, views.new),
path(‘html/‘,views.html_test,name=‘test‘),
path(‘html_tem/‘,views.get_tem,name=‘temp‘),
]
我们在html中,就可以用到name。
存放一个超链接。
<a href="{% url ‘tem:test‘ %}">test</a>
若为{% url ‘tem:test‘ %},输出值为 /student/html/ 显示路径名称。
同时path的name值可以用于跳转。
我们在定义视图函数的时候,就可以用:
return redirect(reverse(‘tem:index‘))
以上是关于过滤器和模板变量的主要内容,如果未能解决你的问题,请参考以下文章