标签:第一个 实现 load 方式 python add views slice enc
1.模板:
模板是一个纯文本文件,或是一个用Django模板语言标记过的普通的Python字符串。 模板可以包含模板标签和变量。
而Django的模板引擎提供了一些类似于函数的功能,通过前端可以实现代码逻辑的功能,例如大小写转换、加减乘除等
2.模板标签:
是在一个模板里面起作用的的标记,可以产生控制结构的语句,也可以展现内容,或者获取其他的模板标签
大家可以查看python3.6/site-packages/django/template/defaultfilters.py
中定义的方法,里面有很多,不对其一个个的列举,只提几个常用的:
{{ value|lower }}
字符串转换成小写{{ value|length }}
测量长度{{ value|make_list }}
将字符串转换为列表,内部其实调用的就是list(value)
{{ value|upper }}
转化成大写{{ value_list|first }}
获取列表的第一个元素,当然还有last{{ value_lsit|join:‘-‘ }}
像python一样,将一个列表转化为字符串,第二个参数是拼接的字符串{{ value|length_is:‘10‘ }}
判断一个对象的长度是否是多少,返回布尔值{{ value|random }}
在给定的字符串、列表(不能是一个字典)中随机取出一个来返回{{ value_lsit|slice:"0:3" }}
列表的切片,跟Python的语法相同{{ value|add:"value" }}
字符串拼接,类似于Python中的+
,需要保持数据类型的统一{{ value|date:"" }}
日期格式化{% now "jS F Y H:i" %}
与上相同,类似的还有time
{{ value|truncatewords:"30" }}
截取字符串的前30个字符simple_tag
自己设定自己的一些小功能
templatetags
目录,V3中不需要__init__.py
tag_add.py
,内容为一个个的函数方法目录结构:
your_app01/
__init__.py
views.py
admin.py
models.py
templatetags/
__init__.py
tag_add.py
逻辑:
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
# 写了两个简单的方法,作用都是返回两个值得和,也可以作为字符的拼接,此处使用装饰器来注册
@register.simple_tag # 注册自定义simple_tag
def bibibi(a1, a2):
return a1 + a2
@register.filter # 注册自定义过滤器filter
def lalala(a1, a2):
return a1 + a2
{% load tag_add.py %}
# 注意,改html中如果有继承其他模板,就必须放在{% extends 'layout.html' %}的后面
{#filter具体使用#}
{{ args1|lalala:'args2'
{#simple_tag具体使用,参数按照位置参数的方式传递#}
{{ bibibi args1 args1 }}
{% if "Leon"|lalala:"吃金拱门~" %}
标签:第一个 实现 load 方式 python add views slice enc
原文地址:https://www.cnblogs.com/forsaken627/p/12521967.html