templates

#应用目录下创建templates文件夹存放html,static目录存放imagescssjs
#setting.py
TEMPLATES = [
{
'DIRS': [
os.path.join(BASE_DIR, 'app/templates'),
os.path.join(BASE_DIR, 'app/static'),
],
]

#html

#变量
{{variable}}
#用.访问变量属性
按照 字典、属性或方法、数字索引 的顺序

#过滤器
{{ name|lower }} #该过滤器将文本转换成小写
{{ my_list|first|upper }} #可嵌套,将第一个元素并将其转化为大写
#内置过滤器
{{ value|add:"2" }} #add——把add后的参数加给value
add #给变量加上相应的值
length #返回值的长度
last #返回列表中的最后一个项目
addslashes #给变量中的引号前加上斜线
capfirst #首字母大写
cut #从字符串中移除指定的字符
date #格式化日期字符串
default #如果值是False,就替换成设置的默认值,否则就是用本来的值
default_if_none #如果值是None,就替换成设置的默认值,否则就使用本来的值

#标签
#for
{%for each in list%}
{%endfor%}
#if
{%if%}
{%endif%}
#生成csrf_token的标签,用于防治跨站攻击验证
{%csrf_token%}
#注释
{# #}
{% url %}: 引用路由配置的地址
{% with %}{%endwith%}:用更简单的变量名替代复杂的变量名
{% verbatim %}{%endverbatim%}: 禁止render
{% load %}: 加载标签库
{% include %} 标签允许在模板中包含其它的模板的内容

#自定义模板标签和过滤器
#在app下创建包templatetags
templatetags/
__init__.py
mytag.py
#mytag.py
'''
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def filter_multi(v1,v2):
return v1 * v2
@register.simple_tag
def simple_tag_multi(v1,v2):
return v1 * v2
@register.simple_tag
def my_input(id,arg):
result = "<input type='text' id='%s' class='%s' />" %(id,arg,)
return mark_safe(result)
'''
使用{% load mytag %}

#模板继承
#base.html中
{% block css %} {% endblock %}
{% block content %} {% endblock %}
{% block js %} {% endblock %}
#show.html中
{% extends "base.html" %}
{% block css %}
p{color:red;}
{% endblock %}
{% block content %}
<h1>添加班级</h1>
<form action="/add_classes.html" method="POST">
<input type="text" name="caption" />
<input type="submit" value="提交"/>{{ msg }}
</form>
{% endblock %}
{% block js %}
<script>
$(function () {
$('#menu_class').addClass('active');
});
</script>
{% endblock %}

原文地址:https://www.cnblogs.com/mznsndy/p/11314234.html