概述

模板由两部分组成,HTML代码,逻辑控制代码,作用:快速生成HTML页面,优点:模板的设计实现了业务逻辑与现实内容的分离


定义模板

挖坑与继承

模板继承可以减少页面的内容的重复定义,实现页面的重用,在父模板中预留区域,子模板去填充。

block标签

父html页面挖坑

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% block content %} {% endblock %}
</body>
</html>

子html页面继承

	{% extends 'father.html' %}

	{% block content %}
<!--写子模板的内容,会重写父模板,显示子模板内容-->
<!--不写内容调用父模板用super-->
{{ block.super }}
{% endblock %}

if标签

	{% if 表达式1 %}
{# 语句1 #}
{% elif %}
{# 表达式2 #}
{% else %}
{# 表达式3#}
{% endif %}

for标签

	{% for 变量 in 迭代对象 %}
{# 语句1 #}
{% empty %}
{# 语句2 #}
{% endfor %}

comment标签

	{% comment %}
{# 多行注释 #}
{# {# 单行注释 #} #}
{% endcomment %}

ifequal、ifnotequal标签

	{% ifequal a b %}
{# a,b是否相等#}
{% endifequal %} {% ifnotequal a b %}
{# 判断a,b是否不等 #}
{% endifnotequal %}

url标签

	{% url 'namespace:name' %}
{# 反向解析 #}

csrf_token标签

	{% csrf_token %}
{# 用于跨站请求伪造保护 #}

autoescape标签

	{% autoescape off %}
{{code}}
{# 用于HTML转义 #}
{% endautoescape %}

过滤器

lower

	{{变量|lower}}
{# 将变量转换为小写显示#}

upper

	{{变量|upper}}
{# 将变量转换为大写显示#}

join

	{{str|join:'*'}}
{# 将传过来的str用*连接起来#}

date

	{{date|date:'Y-m-d'}}
{# 设置日期格式 #}

html转移

	{{code|escape}}
{{code|safe}}

加减乘除p>

	{{num|add:10}}
{# 加10 #}
{{num|add:-5}}
{# 减5 #}
{% widthratio num 1 5 %}
{# 乘5 #}
{% widthratio num 1 5%}
{# 除5#}

CSRF

跨站请求伪造:某些恶意网站包含链接、表单、按钮、js,利用登陆用户在浏览器中认证,从而攻击服务.

防止CSRF:在settings.py文件中的MIDDLEWARE增加'django.middleware.csrf.CsrfViewMiddleware'

最新文章

  1. english
  2. [NOIP2013] 火柴排队(归并排序)
  3. spring1冲刺感想与总结
  4. [codeforces 516]A. Drazil and Factorial
  5. java 中文转换成Unicode编码和Unicode编码转换成中文
  6. SSM框架+Plupload实现断点续传(Spring+SpringMVC+MyBatis+Plupload)
  7. python网络编程-01
  8. JS判断字符串是否全为中文
  9. BitMap画图
  10. ionic2 tabs使用自定义图标
  11. Threads(线程)(二)
  12. python抢小米6自动化脚本
  13. 用自定义注解实现fastjson序列化的扩展
  14. 配置wildfly10为linux的服务,并开机启动
  15. GMA Round 1 极坐标的忧伤
  16. Django book manage system
  17. Inner Classes with TypeScript
  18. package分析
  19. axios 与 Jquery-ajax 的使用区别
  20. centos7 编译安装nginx

热门文章

  1. RabbitMQ发布订阅实战-实现延时重试队列
  2. HDU 5175
  3. 公告:CSDN博客积分系统升级(暂行版)
  4. Cocos2d-x3.0RC2 EditBox
  5. 关于TRIANGLE二维三角网格生成器在windows下的配置说明
  6. 文字录入无限制Undo,Redo的实现
  7. [ACM] HDU 5086 Revenge of Segment Tree(全部连续区间的和)
  8. element-UI中table表格的@row-click事件和@selection-change耦合了
  9. Spark中常用的算法
  10. JavaScript Simple