django的母板系统

一.母板渲染语法

  1.变量

    {{ 变量 }}

  2.逻辑

    {% 逻辑语 %}

二.变量

  在母板中有变量时,母板引擎会去反向解析找到这个传来的变量,然后替换掉.

  .(点),在母板中是深度查询据点符,它的查询顺序: 字典 => 属性或方法 => 数字索引

三.过滤器

  1.语法

     {{ value|filter_name:参数}}

  2.常用内置过滤器

    {{ value|default:"nothing"}}  如果变量为空就是用默认值

    {{ value|length }}       返回长度,用于字符串和列表

    {{ value|filesizeformat}}     将变量格式化为文件大小格式

    {{ value|slice:"::-1"}}     切片

    {{ value|date:"Y-m-d H:i:s"}}   格式化时间

    {{ value|safe}}         设置为安全值,不会误判为xss攻击

    {{ value|truncatechars:6}}    以数量(包含三个点)截断字符串,剩余部分显示...

    {{ value|truncatewords:6}}    以单词数量截断字符串,用空格来识别单词

    {{ value|cut:" "}}        移除value中的字符

    {{ value|join:"_"}}       用字符串连接列表

四.逻辑标签

  1.for循环

    {% for i in lst %}

      {{ forloop.counter }}{{ i }}

    {% endfor %}

 

    forloop.counter    从1开始的索引值

    forloop.counter0     从0开始的索引值

    forloop.revcounter     倒叙到1

    forloop.revcounter0    倒叙到0

    forloop.first      判断当前循环是不是第一个,返回bool

    forloop.last      判断当前循环是不是最后一个,返回bool

    forloop.parentloop   获取本层循环的父级循环对象,能用以上方法

  2.for...empty

    {% for i in lst %}

      {{ i }}

    {% empty %}

      这个列表lst是空的,不是遍历到i的值是空的

    {% endfor %}

  3.if条件判断,基本支持python中的判断,但是不支持连续判断

    {% if 条件 %}

      结果

    {% elif 条件 %}

      结果

    {% else %}

      结果

    {% endif %}

  4.with 别名

    {% with a = 复杂变量 %}  / {% with 复杂变量 as a%}

      {{ a }}        只能在with语句中使用

    {% endwith %}

  5.csrf_token  跨站请求伪造保护

    {% csrf_token %}  防止post请求登陆时恶意攻击

五.继承

  1.母板

    {% block 变量名 %}

      母板预留位置

    {% endblock %}

  2.继承板

    {% extends "母板.html" %}

    {% block 变量名 %}

      替换内容

    {% endblock %}

  3. 组件

    {% include "文件名.html" %}

六. 自定义标签和过滤器

  1. 在settings中配置app

  2. 在app中创建templatetags的python包(固定)

  3.在templatetags中创建py文件,自定义过滤器和标签

from django import template
from django.utils.safestring import mark_safe
register = template.Library()@register.filter     # 自定义过滤器,只能两个参数,可以if for
def f1(x,y):return x*Y@register.simple_tags    #自定义标签,能接收多个参数
def f2():return 1
自定义标签和过滤器

  4. 使用自定义标签和过滤器的时候需要导入py文件

    {% load py文件 %}

  5. 自定义标签和过滤器的使用

    {{ num|filter:y }}    num是第一个参数,y是第二个参数,filter是函数名

    {% simple_tags 参数1 参数2 ...%}  simple_tags是函数名,参数用空格隔开

转载于:https://www.cnblogs.com/q767498226/p/10434622.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSS】flex的常用布局

1、垂直居中&#xff0c;写在父级上div{display: flex;justify-content: center;align-items: center; } 2、flex-左右两端&#xff0c;垂直居中该布局在移动端较为常见<style> .wrap{display: flex;justify-content: space-between;align-items: center;width: 200px;he…

java.util.Properties

ava.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种 首先&#xff0c;新建一个文件&#xff0c;如图&#xff1a; 然后再Java代码段输入如下代码&#xff1a; import java.io.FileInputStream; import java.io.InputStream; import java…

Spring-boot 打成jar包后使用外部配置文件

官网说明 第一种是在jar包的同一目录下建一个config文件夹&#xff0c;然后把配置文件放到这个文件夹下&#xff1b; 第二种是直接把配置文件放到jar包的同级目录&#xff1b; 第三种在classpath下建一个config文件夹&#xff0c;然后把配置文件放进去&#xff1b; 第四种是在c…

UI自动化之元素定位(xpath、css)

很早之前就已经写过自动化了&#xff0c;不过点着功能久了就会容易忘记元素定位&#xff0c;尤其是xpath和css定位&#xff0c;所以就花点时间做下总结收集。 xpath有两种定位&#xff1a; 一.绝对路径&#xff08;不推荐使用&#xff0c;除非已经使用了所有方式仍然无法定位&a…

属性编辑器PropertyEditor

在Spring配置文件里&#xff0c;我们往往通过字面值为Bean各种类型的属性提供设置值&#xff1a;不管是double类型还是int类型&#xff0c;在配置文件中都对应字符串类型的字面值。BeanWrapper填充Bean属性时如何将这个字面值转换为对应的double或int等内部类型呢&#xff1f;我…

Linux下查看当前文件大小的命令

1、ls -lht 列出每个文件的大小和当前目录所有文件大小总和 2、du -sh * 列出当前文件夹下的所有子文件的大小 看你需要啥样的&#xff0c;自己来吧 转载于:https://www.cnblogs.com/xbxxf/p/9619818.html

Spring IOC-BeanFactory的继承体系结构

本文主要介绍BeanFactory以及它的各种继承层级的接口、抽象类及实现类&#xff0c;因为内容很多&#xff0c;所以这里不介绍ApplicationContext继承体系下的类&#xff08;虽然ApplicationContext本质上也是BeanFactory&#xff0c;但是毕竟这这是我们平时接触最多的两种类别&a…

【PHP】xampp配置多个监听端口和不同的网站目录(转)

转自&#xff1a;https://blog.csdn.net/cc1314_/article/details/75646344 windows下使用xampp配置多个监听端口和不同的网站目录 一&#xff1a;配置Apache文件httpd.conf打开Apache的配置文件httpd.conf&#xff0c;可以通过点击xampp的Apache的config下的Apache(httpd.conf…

Java消息中间件

1.概述 中间件 非底层操作系统软件&#xff0c;非业务应用软件&#xff0c;不是直接给最终用户使用的&#xff0c;不能直接给客户带来价值的软件统称为中间件。 消息中间件 管制关注于数据的发送和接收&#xff0c;利用高效可靠的异步消息传递机制集成分布式系统。 优点 ① 解…

form 源码刨析

def clean_name(self) value self.cleaned_data.get(name) if "金-瓶-梅" not in value: raise ValidationError("不符合要求") return value 重写clean方法 转载于:https://www.cnblogs.com/wuheng-123/p/9623289.html

Activemq源码、编译、导入idea、源码调试总结

1、在本地下载源码 在GitHub官网搜activemq&#xff0c;找到排名第一的&#xff0c;并打开&#xff0c;如图所示&#xff0c;拷贝url地址。 activemq托管地址&#xff1a;https://github.com/apache/activemq.git 切换到git bash下&#xff0c;输入命令&#xff1a; mkdir a…

activiti 视图

1. application.properties增加如下配置 spring.activiti.database-schema-updatefalsespring.activiti.db-history-usedfalsespring.activiti.db-identity-usedfalse 2. 视图sql -- 修改表名称 ALTER TABLE act_id_user RENAME act_id_user_bak1; ALTER TABLE act_id_group RE…

ActiveMQ源码解析 建立连接

作为一个消息中间件&#xff0c;有客户端和服务端两部分代码&#xff0c;这次的源码解析系列主要从客户端的代码入手&#xff0c;分成建立连接、消息发送、消息消费三个部分。趁着我昨天弄明白了源码编译的兴奋劲头还没过去&#xff0c;今天研究一下建立连接的部分。 如果读起…

原生Js_实现广告弹窗

广告样式当页面加载后5s刷新在右下角 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>Gary图片轮播</title><style type"text/css">#ad{width:300px;height: 300px;background-color:antiquewhite…

springcloud注册中心eureka

1、前提 springcloud的注册中心是以springboot为基础搭建起来的。 开发工具&#xff1a;IDEA 项目管理工具&#xff1a;maven 2、搭建步骤 创建一个web项目&#xff08;建议使用IDEA工具构建项目&#xff09;修改pom文件 <dependency><groupId>org.springframework…

Nancy in .Net Core学习笔记 - 视图引擎

前文中我们介绍了Nancy中的路由&#xff0c;这一篇我们来介绍一下Nancy中的视图引擎。 Nancy中如何返回一个视图(View) 在ASP.NET Mvc中&#xff0c;我们使用ViewResult类来返回一个视图。Nancy中也提供了类似的功能, 在NancyModule类中&#xff0c;Nancy提供了一个ViewRendere…

设计模式之组合模式(Composite 模式)

引入composite模式 在计算机文件系统中&#xff0c;有文件夹的概念&#xff0c;文件夹里面既可以放入文件也可以放入文件夹&#xff0c;但是文件中却不能放入任何东西。文件夹和文件构成了一种递归结构和容器结构。 虽然文件夹和文件是不同的对象&#xff0c;但是他们都可以被放…

HierarchicalBeanFactory接口

HierarchicalBeanFactory 提供父容器的访问功能.至于父容器的设置,需要找ConfigurableBeanFactory的setParentBeanFactory(接口把设置跟获取给拆开了!). HierarchicalBeanFactory源码具体&#xff1a; 1、第一个方法返回本Bean工厂的父工厂。这个方法实现了工厂的分层。 2、第…

C++: C++函数声明的时候后面加const

C: C函数声明的时候后面加const 转自&#xff1a;http://blog.csdn.net/zhangss415/article/details/7998123 非静态成员函数后面加const&#xff08;加到非成员函数或静态成员后面会产生编译错误&#xff09;&#xff0c;表示成员函数隐含传入的this指针为const指针&#xff0…

【计蒜客习题】消除字符串

问题描述 蒜头君喜欢中心对称的字符串&#xff0c;即回文字符串。现在蒜头君手里有一个字符串 SS&#xff0c;蒜头君每次都会进行这样的操作&#xff1a;从 SS 中挑选一个回文的子序列&#xff0c;将其从字符串 SS 中去除&#xff0c;剩下的字符重组成新的字符串 SS。 蒜头君想…