概述

模板由两部分组成,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'

django模板使用的更多相关文章

  1. Django模板与Vue.js冲突问题

    参考: https://my.oschina.net/soarwilldo/blog/755984 方法1:修改vue.js的默认的绑定符号 Vue.config.delimiters = [&quo ...

  2. 在 Django 模板中遍历复杂数据结构的关键是句点字符

    在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ...

  3. python django 模板

    1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ...

  4. django 模板中定义临时列表

    <ul class="num_t clr"> {% for obj in ""|ljust:"10" %} <li> ...

  5. Django 模板中引用静态资源(js,css等)

    Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1. ...

  6. Django模板-分离的模板

    上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ...

  7. Django模板-在视图中使用模板

    之前我们已经有了自己的视图mysite.views.py中,应该是这样子的 from django.http import HttpResponse import datetime def curre ...

  8. Django模板-模板标签

    接着Django模板-基础知识继续写模板相关知识. if标签 {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ). 但是不允许在同一个 ...

  9. Django模板-基础知识

    上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 def hours_ahead(request,phours): try: phours ...

  10. 关于Django模板引擎的研究

    原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not found.1其原因是没有给视 ...

随机推荐

  1. POJ 1966

    求的是无向图的点连通度.开始便想到网络流,既然选的是点,当然就要拆点加边了.但无论如何也不敢往枚举源汇点的方向想,因为网络流复习度很高.看看网上大牛的,都是枚举,再看数据,原来N才50个点,枚举无压力 ...

  2. Class 找出一个整形数组中的元素的最大值

    目的:找出一个整形数组中的元素的最大值   以下,我们用类和对象的方法来做.   #include<iostream> using namespace std; class Array_m ...

  3. git笔记之eclipse使用github远程仓库进行版本号管理

    原文地址:http://dtbuluo.com/90.html 这里记录一下eclipse开发工具中git的使用说明. 环境:centOS.eclipse-jee-kepler-SR2-linux-g ...

  4. Github Pages 建立过程记录

    之前建立过一个測试页面. 如今在折腾CreateJS 试着把离线版的文档传到github pages上面. 第一步:创建Repository 第二步:本地初始化 主要命令:git init 第三步:复 ...

  5. [think in java]第12章 通过异常处理错误

    异常处理是java中唯一正式的错误报告机制. 而且通过编译器强行运行. 异常參数 抛出异常与方法正常返回值的差别:异常返回的"地点"与普通方法调用返回的"地点" ...

  6. ORACLE 按表字段值的不同统计数量

    select p.id comperitorId,p.compcorp competitorName, sum(case when c.kindname = 'ATM' then c.num else ...

  7. 【SCOI 2005】 骑士精神

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1085 [算法] IDA* [代码] #include<bits/stdc++. ...

  8. Node.js:目录

    ylbtech-Node.js:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. http://www.runoob.com/nodejs/nodejs ...

  9. vue插件 vue-seamless-scroll 无缝滚动插件ES6使用总结

    最近因为需求需要写一个项目信息无缝向上滚动组件,在网上搜了一下,看到大家的一致好评就果断的使用了vue-seamless-scroll组件.下面就简单的介绍它的使用,具体详细的使用推荐大家去看下开发者 ...

  10. Mysql外键的变种 三种关系

    一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以 ...