模板是html文档+Django逻辑语句的组合。

一、变量和标签

  变量通过{{ }}来表示,两个大括号中间是变量名。

  标签通过{% %}来表示,就是Python中的函数和方法。

  常用标签:

 {% for %} #表示遍历循环
 {% if %} #表示判断
 {% url "name" %} #表示路由地址
 {% load %} #加载相关文件
 {% csrf_token %} #用于防护跨站请求伪造攻击
 {% with %} #重新命名变量名
 {% extends %} #继承模板
 {% block %} #重写父类模板的代码

跨站请求伪造:

  可以写一个和正规网站一样的钓鱼网站,拿转账举例,这个网站把原来填写转入账户的input标签的name属性去掉,自己加一个name属性为自己账户的input,用户看不出来,这样实际把钱就骗到手了,所以引入了csrf,他网页请求时返回一个隐藏的带有随机字符串的input标签,在提交数据时验证这个字符串,如不一致则拒绝请求。

XSS攻击:

变量 描述
forloop.counter 获取当前循环的索引,从1开始
forloop.counter0 获取当前循环的索引,从0开始
forloop.revcounter 从最大数开始索引,依次递减,直到索引到1
forlopp.revcounter0 从最大数开始索引,依次递减,直到索引到0
forloop.first 当遍历第一个元素时为真
forloop.last 当遍历最后一个元素时为真
forloop.parentloop 获取上层for循环的索引

二、模板的继承

  在html中首行写{% extends “xxxx.html” %},则可以继承所有代码。

  在原文档中,可以用{% block name %} {% endblock %}将想要在子模板中重写的部分包裹起来,在子文档中重写。

三、自定义过滤器

  过滤器是对变量的内容进行处理,支持多个过滤器同时使用,但仅支持传入一个参数。

  {{ variable |  filter1 | filter2 }}

  也可以自定义过滤器,方法如下:

  1、在app中创建templatetags包,在其中创建任意名称的py文件。

  2、文件中代码:

 from django import template

 register = template.Library()

 @register.filter
 def MyFilter(x,y):
     return x+y

  3、在模板中使用,需在首行导入文件:{% load 文件名 %}

Django-3-Template模板的更多相关文章

  1. Python Django 之 Template 模板的使用

    一.模板样式 注意: 1.url urlpatterns = { path('admin/', admin.site.urls), path('order/', views.order), path( ...

  2. Python Django 之 Template 模板语言简介

    一.什么事模板语言 html+逻辑控制语句 二.模板语言的作用 帮助前端处理后端发来的数据,方便前端展示(杂糅渲染) 三.模板语言语法 1.{{变量}} 变量使用双大括号{{}} 2.万能的句点号. ...

  3. django基础2: 路由配置系统,URLconf的正则字符串参数,命名空间模式,View(视图),Request对象,Response对象,JsonResponse对象,Template模板系统

    Django基础二 request request这个参数1. 封装了所有跟请求相关的数据,是一个对象 2. 目前我们学过1. request.method GET,POST ...2. reques ...

  4. django template 模板

    九.Template模板 Template 模板是根据view传过来数据在html展示的功能,典型python 模板jinjia2库提供丰富的上下文展示func 创建template位置在项目下与ap ...

  5. python框架Django中MTV框架之Template(模板/界面)

    MTV框架之Template(模板/界面) 关注公众号"轻松学编程"了解更多. 1.模板目录位置 应用下 不需要注册 无法跨应用地进行复用 工程下 需要注册 settings.py ...

  6. python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

    python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...

  7. Python Web框架篇:Django templates(模板)

    为什么用templates? views.py视图函数是用来写Python代码的,HTML可以被直接硬编码在views.py之中.如下: import datetime def current_tim ...

  8. Django框架简介-模板系统

    2.4 模板 官方文档 2.4.1 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 2.4.1.1 变量 {{ 变量名 }} 变量名由字母数 ...

  9. Django之Template

    模板层(template) 概念:  模板与html的区别:  模板=html+模板语法 模板语法: 1 变量:       {{}}    深度查询: 通过句点符.    列表,字典    clas ...

  10. 3.Django| 视图层| 模板层

    1.视图函数 文件在view_demo 一个视图函数简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XM ...

随机推荐

  1. P1546 最短网络 Agri-Net题解(克鲁斯卡尔)

    P1546 最短网络 Agri-Net 那么这个题是一道最小生成树的板子题 在此讲解kruskal克鲁斯卡尔方法: 原理: 并查集在这里被用到: 众所周知:树满足这样一个定理:如果 图 中有n个节点并 ...

  2. SpringBoot中各配置文件的优先级及加载顺序

    我们在写程序的时候会碰到各种环境(开发.测试.生产),因而,在我们切换环境的时候,我们需要手工切换配置文件的内容.这大大的加大了运维人员的负担,同时会带来一定的安全隐患. 为此,为了能更合理地重写各属 ...

  3. CI/CD持续集成/持续部署 敏捷开发

    敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...

  4. Kubernetes — 深入解析Pod对象:基本概念(一)

    在上一篇文章中,我详细介绍了 Pod 这个 Kubernetes 项目中最重要的概念. 现在,你已经非常清楚:Pod,而不是容器,才是 Kubernetes 项目中的最小编排单位.将这个设计落实到 A ...

  5. Android艺术——探究Handler运行机制

    我们从开发的角度来说,Handler是Android 的消息机制的上层接口.说到Handler,大家都会说:哦,Handler这个我知道干什么的,更新UI.没错,Handler的确是用于更新UI的,具 ...

  6. 为什么String被设计为不可变?是否真的不可变?

    1 对象不可变定义 不可变对象是指对象的状态在被初始化以后,在整个对象的生命周期内,不可改变. 2 如何不可变 通常情况下,在java中通过以下步骤实现不可变 对于属性不提供设值方法 所有的属性定义为 ...

  7. Python——字典操作

    一.取出字典中所有的key-value student={'name':'xiaoming','age':11,'school':'tsinghua'} for key,value in studen ...

  8. idea打开项目,没有项目文件,文件报红

    删除项目文件夹中的.idea文件,重启idea,再执行如下操作.

  9. 【C/C++】Dijkstra算法的简洁实现

    Dijkstra的实现有很多种,下面给出一种较为简洁和高效的实现,可以作为模板快速使用. 1. 使用邻接表存储图: 2. 使用标准STL的vector存储每个点的所有邻接边: 3. 使用pair记录当 ...

  10. Django模板语言进阶

    一.母板 1.什么情况下使用母版 当多个页面的大部分内容都一样的时候,我们可以把相同的部分提取出来,放到一个单独的母版HTML文件中 然后在母版中定义需要被替换的block 例如:母板页面 <! ...