前言
django的模板里面有很多标签可以快速实现一些功能,比如{% url url_name%} 可以快捷的导入一个本地url地址。
上一篇我们可以自定义一些过滤器https://www.cnblogs.com/yoyoketang/p/11809555.html,本篇讲下如何去自定义一个标签
自定义标签
常见的标签语法
- {% for %} 变量输出变量的内容
- {% if %} 对变量条件判断
- {% csrf_token %} 生成 csrf_token值,用于防护跨站请求伪造攻击
- {% url %} 引用路由配置地址,生成相应的url地址
- {% with %} 将变量名重命名
- {% load %} 导入django标签库
- {% static %} 加载静态资源内容
- {% extends xxx %} 模板继承
- {% block xxx %} 重写父类模板的block内容
- {% include xxx %} 导入模板 文件内容,代码复用
比如我们要实现一个概念,在页面上显示当前的系统时间格式:2019-11-7 10:20:00
接着上一篇,在 templatetags 目录新建mytag.py文件,写个获取当前时间的函数,定义标签名称为 current_time
from django import template
import time
register = template.Library()
@register.simple_tag(name=\'current_time\')
def get_current_time():
timestr = time.strftime("%Y-%m-%d %H:%M:%S")
return timestr
引用标签
模板里面先 load 自己定义的标签
{% load mytag %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="referrer" content="no-referrer" />
<title>Title</title>
</head>
<body>
{% load mytag %}
<div>
<p class="text_gray"><span>系统当前时间:</span>{% current_time %}</p>
</div>
</body>
</html>