过滤器和模板变量

  小编,最近在学习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'))

 

posted @ 2020-03-26 20:41  为红颜  阅读(169)  评论(0编辑  收藏  举报