{{ }} 变量
{% %} 逻辑相关 像{% csrf_token%}
过滤器支持“链式”操作。即一个过滤器的输出作为另一个过滤器的输入
Django内置的过滤器
# 如果value为空或False 则给默认值nothing
{{ value|default:"nothing"}}
<p>默认值{{ ''|default:"我要炸天" }}</p>
<p>长度{{ '123456'|length }}</p>
<p>数据大小{{ 123|filesizeformat }}</p>
<p>切片{{ '[123,123,12]'|slice:'1:-1' }}</p>
<p>格式化时间{{ cur_time|date:"Y-m-d H:i:s" }}</p>
<p>safe使用 {{ content }}</p>
<p>truncatechars使用 {{ '123456789'|truncatechars:'5' }}
<p>cut使用 {{ '12334535433'|cut:'3' }}</p>
<p>join使用{{ girl|join:'+' }}</p>
# 渲染换视图 ↓↓↓↓↓
def get(self, request):
data = {'data': False, 'have': '123456'}
da2 = {'zxc': 'zxc'}
li = [11, 22, 33]
value = "<a href='#'>点我</a>"
girl=['beauty','girl']
return render(request, 'home.html', {'girl':girl,'content':value,'data': data, 'd2': da2, 'li': li,'cur_time':datetime.datetime.now()})
自定义filter
首先在app下面创一个templatetags 的目录 在下面创建你要写filter的py
from django import template
register = template.Library()
@register.filter(name='addstr')
def add_str(value):
return "zxcasdqwe%s" % value
tag
循环:
<ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% endfor %}
</ul>
if判断:
{% if user_list %}
用户人数:{{ user_list|length }}
{% elif black_list %}
黑名单数:{{ black_list|length }}
{% else %}
没有用户
{% endif %}
with 起别名用的:
①
{% with total=business.employees.count %}
{{ total }} employee{{ total|pluralize }}
{% endwith %}
②
{% with business.employees.count as total %}
{{ total }} employee{{ total|pluralize }}
{% endwith %}
模板渲染
def xx(request):
d = {"a": 1, "b": 2, "c": 3, "items": "100"}
return render(request, "xx.html", {"data": d})
{{ data.items }}
上面的key和内置的items函数重了
默认取key的值
母版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
{% block page-css %}
{% endblock %}
</head>
<body>
<h1>这是母板的标题</h1>
{% block page-main %}
{% endblock %}
<h1>母板底部内容</h1>
{% block page-js %}
{% endblock %}
</body>
</html>
子页面 通过用 {% extends 'layouts.html' %} 继承母页
子页通过 块{% block xxx %} 来替换母页的内容
例如 ↓↓↓
{% block page-main %}
<p>世情薄</p>
<p>人情恶</p>
<p>雨送黄昏花易落</p>
{% endblock %}
导入别html文件 :---- ---》 {% include 'navbar.html' %}
静态文件的导入 ----------->>>>> {% load static %} <img src="{% static "images/hi.jpg" %}" alt="Hi!" /> js 同样填写static下的文件的正确路径
可使用别名 {% load static %} {%static 'xxxxxxxx.jpg' as aa.jpg%} ------<img src='{{aa.jpg}}'></img>