标签:第一个 实现 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__.pytag_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