template是模板的意思
这个文件夹和他的字面意思是一样的,里面是放模板的,templates里面的文件不全是html语言里面是有HTML代码+逻辑控制代码组成的
#首先是变量
{
{var}},对这个就是变量,我们在之前已经用过很多次了{
{user}}这个就是在视图里定义的然后返回到了我们的模板里
万能的句点,在逻辑控制代码中,数组、字典、列表函数里的属性等等都可以通过句点来实现
#变量过滤器(filter)的使用
语法格式:{
{obj|filter:param}}#这个可以参考defaultfilters里面的过滤器函数
@register.filter(is_safe=True)
@stringfilter
def addslashes(value):
“”"
Adds slashes before quotes. Useful for escaping strings in CSV, for
example. Less useful for escaping JavaScript; use the escapejs
filter instead.
“”"
return value.replace(’\’, ‘\\’).replace(’"’, ‘\"’).replace("’", “\’”)
@register.filter(is_safe=True)
@stringfilter
def capfirst(value):
“”“Capitalizes the first character of the value.”""
return value and value[0].upper() + value[1:]
@register.filter(“escapejs”)
@stringfilter
def escapejs_filter(value):
“”“Hex encodes characters for use in JavaScript strings.”""
return escapejs(value)
里面还有很多,如果我们要自己写过滤器也要参照这个里面的格式写出自己需要的过滤器,这里先说在几个,如果感兴趣可以看看源代码里面的其他方法
1、add :给变量加上相应的值{
{var|add:int}}
2、addslashes:给变量中的引号前加上斜线
3、capfirst:首字母大写
4、cut:从字符串中移除指定的字符
5、data:格式化日期字符串
6、default:如果值是False,就替换成设置的默认值,否则这就是用本来的值
7、default_if_none: 如果值是False,就替换成设置的默认值,否则这就是用本来的值
#标签tag的使用
{%tags%}
#{%if%}和Python 里面的差不多不过多了一个{%endif%}
#{%for%}和Python 里面的差不多不过多了一个{%endfor%}
#{%csrf_token%} 用于生成csrf_token标签,用于防止跨站攻击验证
#{%url%} 引用路由配置的地址,这个是我们用过的,还记得url路由分发里面的别名吗?对就是他
#{%load%} 加载标签库,这个我们也用过就是加载jquery时
#下面在说下自定义的filter和tag
1、在app中创建templatetags模块(这个是必须的)
2、创建任意.py文件,如:my_tags.py
3、在使用自定义simple_tag和filter的html文件中导入之前创建的my_tags.py:{%load my_tags%}
4、使用simple_tag和filter(如何调用)
5、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自动的simple_tag
6、filter只能有一个参数,而tag可以有多个,filter可以用在if等语句后,但是simple_tag不可以
这个是在templatetags文件加下建立的filter1.py文件
from django import template
from django.utils.safestring import mark_safe
register = template.Library(