1、setting.py中模板设置
TEMPLATES=[
{
'DIRS':[ os.path.join(BASE_DIR, 'templates ')]
}
]
2、注意结构(url短路)
app1/templates/app1/index.html
app2/templates/app2/index.html
3、模板语言(四种)
-
变量 {{ fitst_name }}
local() ——引入全局变量
中间要有空格 -
标签 {% %}
起始和结束标签
{% csrf_token %} #令牌标签
{% load static %}
{% url %}
{% for i in list %} {% endfor %}
{% if condition1 %} content1
{% elif condition2 %} content2
{% else %} content3
{% endif %}
-
过滤器 {{ django|title}
{{ value|defualt:"默认值" }}
{{ value|length }} #value的长度
{{ value|filesizeformat }} #格式化人类可读大小 -
注释
单行注释: {# 内容#}
多行注释:{% comment %}内容{% endcomment %}
4、模板继承
- 父模板
base.htm
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css"/>
<title>{% block title %} Mysite {% endblock %}</title>
</head>
<body>
<div id = "sidebar">
{% block sidebar %}
<ul>
<li> 首页 </li>
<li> 页面1 </li>
<li> 页面2 </li>
</ul>
</div>
<div id = "content">
{% block content %} {% endblock %}
</div>
</body>
- 子模版
{% extend "base.html" %} # 引入父模板
{% block title %} {{ section.titile }}{% endblock%}
{% block content %}
{% include ‘blog/nav_bat.html’ %} # 把另一个模板导入进来
{% endblock %}
- html 转义
脚本攻击:
Hello, <script>alert('OK')<script>
脚本形式
{{ string|escape }} #强制转义
网友评论