标签:replace 常用 伪造 block 示例 go import extends key djang
示例:
{# 取variable中的第一个参数 #}
{{ variable.0 }}
{# 取字典dic中key的值 #}
{{ dic.key }}
{# 取obj_list对象列表中第一个对象的attr属性值 #}
{{ obj_list.0.attr }}
{# 点操作只能调用不带参数的方法 #}
{{ obj_list.0.method }}
逻辑判断用{% %}
常用for循环参数:
| Variable | Description |
| forloop.counter | 当前循环的索引值(从1开始) |
| forloop.counter0 | 当前循环的索引值(从0开始 |
| forloop.revcounter | 当前循环的倒序索引值(从1开始) |
| forloop.revcounter0 | 当前循环的倒序索引值(从0开始) |
| forloop.first | 当前循环是不是第一次循环(布尔值) |
| forloop.last | 当前循环是不是最后一次循环(布尔值) |
| forloop.parentloop | 本层循环的外层循环 |
{% if some_condition %}...{% elif other_condition %}...{% endif %}
{% if some_condition %}...{% elif other_condition %}...{% endif %}
{% with new_variable = old_variable %}.....{% endwith %}
语法:在页面的每个form表单中写上
{% csrf_token %}
作用:用于跨站请求伪造保护
语法:
{# 注释内容 #}
<!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 ‘base.html‘ %}
{% block block_name %}...{% endblock %}
示例:
{% block page-main %}
<p>世情薄</p>
<p>人情恶</p>
<p>雨送黄昏花易落</p>
{% endblock %}
{% include ‘subassembly.html‘ %}
在Settings中设置static静态文件夹,在html中导入。
语法:
{% load static %}
例如:
{% load static %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />
引用JS文件时使用:
{% load static %}
<script src="{% static "mytest.js" %}"></script>
某个文件多处被用到可以存为一个变量
{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>
{% load static %}
<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />
或者
{% load static %}
{% get_static_prefix as STATIC_PREFIX %}
<img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" />
<img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />
自定义simpletag的步骤(与自定义Filter类似,不过接收更灵活的参数)
custom_simpletag.py中编写自定义simpletag,例如:
from django import template
register = template.Library()
@register.simple_tag(name="my_simpletag")
def add_simpletag(a,b,c): # 可接收多个参数
return "{} + {} + {}".format(a, b, c)
{% load custom_simpletag %}
{% my_simpletag "1" "2" "3" %}
自定义inclusion_tag的步骤
custom_inclusiontag.py中编写自定义inclusiontag,例如:
from django import template
register = template.Library()
@register.inclusion_tag(‘inclusion_tag.html‘)
def my_inclusiontag(n):
n = 1 if n < 1 else int(n)
data = ["第{}项".format(i) for i in range(1, n+1)]
return {"data": data}
<ul>
{% for choice in data %}
<li>{{ choice }}</li>
{% endfor %}
</ul>
{% load custom_inclusiontag %}
{% my_inclusiontag 10 %}
语法:
{{ value|filter_name:args }}
注意:管道符前后没有空格
{{ value: default: "自定义内容"}}
{{ value|length }}
{{ value|filesizeformat }}
如果 value 是 123456789,输出将会是 117.7 MB。
{{value|slice:"start:end"}}
{{ value|date:"Y-m-d H: i:s"}}
{{value|safe}}
{{ value|truncatechars:num}}
在custom_filter.py中编写自定义过滤器,例如:
from django import template register = template.Library() @register.filter(name="my_filter") def my_filter(value, arg): #最多接收两个参数 return value.replace(arg, "")
{% load custom_filter %}
{{ variable|my_filter:"0" }}
标签:replace 常用 伪造 block 示例 go import extends key djang
原文地址:https://www.cnblogs.com/gaoya666/p/8673371.html