Django模板层
模板语法传值
'''
<p>{{ dict1.key1 }}</p>
<p>{{ list1.index1 }}</p>
<p>{{ dict1.key1.index1.keyx }}</p>
'''
过滤器
s = 'abc'
<p>{{ s|lenth }}</p>
<p>{{ n|default:'空' }}</p>
<p>{{ file_size|filesizeformat }}</p>
<p>{{ current_time|date:'Y-m-d H:i:s' }}</p>
<p>{{ l|slice:'0:4:2' }}</p>
<p>{{ info|truncatechars:9 }}</p>
<p>{{ info|truncatewords:3 }}</p>
<p>{{ info|cut:' ' }}</p>
<p>{{ list1|join:'$' }}</p>
<p>{{ n|add:2 }}</p>
<p>{{ s|add:info }}</p>
<p>{{ h1|safe }}</p>
html_code = '<h1>ahhahahahah</h1>'
h2 = mark_safe(html_code)
标签
'''
{% for li in list1 %}
{{ forloop }}
{% endfor %}
'''
'''
{% for li in list1 %}
<p>{{ li }}</p>
{% endfor %}
'''
'''
{% if bllo1 %}
<p>hahahah</p>
{% elif %}
<p>wahahahahahha</p>
{% else %}
<p>xixiixixxiix</p>
{% endif %}
'''
'''
{% for li in list %}
{% if forloop.first %}
<p>第一次循环</p>
{% elif forloop.last %}
<p>最后一次循环</p>
{% else %}
<p>{{ li }}</p>
{% endif %}
{% empty %}
<p>for循环的对象是空</p>
{% endfor %}
'''
'''
{% for foo in dict1.keys/.values/.items %}
{{ forloop }}
{% endfor %}
'''
'''
{% with dict1.key2.index1.keyx as s %}
<p>s</p>
<p>s</p>
<p>s</p>
<p>s</p>
<p>s</p>
<p>s</p>
{% endwith %}
'''
自定义过滤器、标签、inclusion_tag
'''
1.在应用下创建一个templatetags文件夹
2.在该文件夹内创建任意名称的py文件 eg: mytag.py
3.在该py文件内:
from django import template
register = template.Library()
'''
@register.filter(name='sum_filter')
def my_sum(a1,a2):
return a1 + a2
{% load mytag %}
<p>{{ a1|sum_filter:a2 }}</p>
@register.simple_tag(name='my_tag')
def index(a, b, c, d):
return f'{a}/{b}/{c}/{d}'
{% load mytag %}
<p>{% my_tag 'a' 'b' 'c' 'd' %}</p>
@register.inclusion_tag('left_menu.html')
def left(n):
data = [f'第{i}项' for i in range(n)]
return locals()
'''
<ul>
{% for datum in data %}
<li>{{ datum }}</li>
{% endfor %}
</ul>
'''
{% load mytag %}
{% left 9 %}
模板的继承
'''
<div class="panel-body">
{% block var_content %}
<div class="jumbotron">
<h1>Hello, world!</h1>
<p>...</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
</div>
{% endblock %}
</div>
'''
'''
{% extends 'home.html' %}
{% block var_content %}
<h1>注册页面</h1>
{% endblock %}
'''
'''
1.css区域
{% block css %}
{% endblock %}
2.html区域
{% block content %}
{% endblock %}
3.js区域
{% block js %}
{% endblock %}
'''
模板的导入
{% include 'part.html' %}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现