首页 > 其他分享 >1103.模版变量及模版过滤器

1103.模版变量及模版过滤器

时间:2023-05-12 21:00:13浏览次数:41  
标签:变量 模版 1103 fruits 过滤器 模板 name

一、模版路径总结

在配置文件setting.py文件中找到TEMPLATES进行文件路径配置:

1. DIRS定义一个目录列表,模板引擎按流标顺序搜索这些目录以查询模板源文件。将templates放在主项目目录下:

2. APP_DIRS告诉模板引擎是否应该进入每个已安装的应用中查找模板,值为True则模板会去安装了的app下面的templates文件夹查找模板。所以我们也可以在每个app的狸猫创建模板目录templates存放模版,这种方式需要将这个app添加到setting.py文件的INSTALLED_APPS列表中。

二、模版变量

1. 语法: {{ 变量名 }}

2. 命名由字母和数字以及下划线组成,不能有空格和标点符号

3. 可以使用字典、模型、方法、函数、列表

4. 不要和python或django关键字重名

5. 变量和查找

注:

1. 如果data是一个字典,那么访问data.items将会访问data这个字典的key名的items的值,而不会访问字典的items方法;

2. 点在模板渲染时有特殊的含义。变量名中点表示查找。

app book/views.py文件

def hello():
    return 'django'

class Fruits:
    def __init__(self, name, color):
        self.name = name
        self.color = color
    def say(self):
        return 'HAHAHAHA'

ap = Fruits('apple', 'red')
ls = ['x', 'y', 'z']
dc = {'a': 1, 'b': 2}

from django.shortcuts import render
def index_4(request):
    return render(request, 'book/index.html', 
                        context={'books_name': 'python',
                                       'hello': hello,
                                       'fruits_say': ap.say,
                                       'fruits': ap,
                                       'list': ls,
                                       'dict': dc,})

templates/book/index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板变量</title>
</head>
<body>
    这个变量是字符串对象:{{ books_name }}<br>
    这个变量是函数对象:{{ hello }}<br>
    这个变量是类方法对象:{{ fruits_say }}<br>
    这个变量是类对象:{{ fruits }}<br>
    这个变量是类对象,访问类对象的属性:{{ fruits.name }}<br>
    这个变量是类对象,访问类对象的方法:{{ fruits.say }}<br>
    这个变量是列表对象:{{ list }}<br>
    这个变量是列表对象,访问列表的元素:{{ list.1 }}<br>
    这个变量是字典对象:{{ dict }}<br>
    这个变量是字典对象,访问字典的键:{{ dict.a }}<br>
</body>
</html>

三、常用的过滤器

作用:对变量进行过滤。在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换原来的变量展示出来。

语法:{{fruits|lower}}      

语法:{{fruits|lower|capfirst}}       管道符号进行链式调用,比如实现一个功能,先把所有字符变成小写,把第一个字符转换成大写。

语法:{{fruits|cut:" "}}         使用参数:过滤器可以使用参数,在过滤器名称后面使用冒号“:”在加上参数,比如要把一个字符串中所有的空格去掉,则可以使用cut过滤器

常用的过滤器:

date和time过滤器格式

例子:

自动转义:

四、静态文件引用

1. 创建文件 /static/js/myjs.js

2. 创建文件/static/css/mystyle.css

3. 创建文件/static/image/myimage.jpg

4. 创建模板/templates/book/static_test.html

标签:变量,模版,1103,fruits,过滤器,模板,name
From: https://www.cnblogs.com/lxinghua/p/17396215.html

相关文章

  • JavaWeb过滤器读取并修改POST请求的参数-YhtHttpServletRequestWrapper
    核心原理就是一个类:javax.servlet.http.HttpServletRequestWrapper一个简单的例子,当任何请求的参数里有aaa的时候,把它的值改成bbb新增一个类自定义的类CustomHttpServletRequestWrapper importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpSer......
  • 布隆过滤器与Redis
    布隆过滤器是一种用来判定某个对象是否存在是否已经添加过的数据结构,一般来说,布隆过滤器要有初始化,加入对象,判定对象是否存在三个功能,本质上来说,与hashmap,hashset的思路是一样的,但是因为面对的场景不一样,在数据结构的设计思路上也有一些变化,一般来说,布隆过滤器面对的是海量数据,而......
  • 2020-11-09:谈谈布隆过滤器和布谷鸟过滤器的相同点和不同点?
    福哥答案2020-11-09:相同点:都是过滤器。不同点:算法:布隆过滤器多个hash函数。布谷鸟过滤器用布谷鸟哈希算法。能否删除:布隆过滤器无法删除元素。布谷鸟过滤器可以删除元素,有误删可能。空间是否2的指数:布隆过滤器不需要2的指数。布谷鸟过滤器必须是2的指数。空间利用率:相同误判下......
  • c++模版多参数的递归用法--自定义log
    #include<iostream>#include<sstream>#include<string>#include<tuple>#include<type_traits>template<typenameT>voidprint_impl(std::ostringstream&os,constchar*format,T&&arg){while(*form......
  • 学习5月8日位图与布隆过滤器原理以及实现
        现在大多主流计算机的内存差不多在16个g左右,然而互联网的用户体量很大数据动不动就是用亿来计算的,对这些数据进行查找或者从中提取一些有用的信息,若能用一般的数据结构比如哈希或者树形结构需要占据很大的内存,按一个整形4字节那么40一个整形需要占用近15g左右空间,比如......
  • Gateway使用时不走全局过滤器
    报错今天配置nacos+gateway作为项目的基础,想通过gateway的过滤器进行token的校验。百度后,发送请求,进行网关找到对应的服务,但是没有进行token校验。每次请求都能够进入到方法体中。自定义过滤器:@ComponentpublicclassTokenFilterimplementsGatewayFilter,Ordered{@......
  • SpringCloud gateway全局过滤器
    GlobalFilter接口具有与GatewayFilter相同的签名。这些是有条件地应用于所有路由的特殊过滤器。组合GlobalFilter和GatewayFilter当请求与路由匹配时,过滤web处理程序会将GlobalFilter的所有实例和GatewayFilter的所有路由特定实例添加到过滤器链中。这个组合的过滤器链由org.spr......
  • SpringCloud gateway内置过滤器之六
    1、RequestSizeGatewayFilter当请求大小大于允许的限制时,RequestSizeGatewayFilter可以限制请求到达下游服务。过滤器采用maxSize参数。maxSize是`DataSize类型,因此可以将值定义为一个数字,后跟可选的DataUnit后缀,如“KB”或“MB”。字节的默认值为“B”。它是以字节为单位定义......
  • SpringCloud gateway内置过滤器之五
    1、SetRequestHeaderGatewayFilterSetRequestHeaderGatewayFilter设置请求头,会覆盖原来已有的请求头。spring:cloud:gateway:enabled:trueroutes:-id:Goods-Server#路由id,唯一标识uri:lb://producerpredicates......
  • SpringCloud gateway内置过滤器之四
    1、RewriteLocationResponseHeaderGatewayFilterRewriteLocationResponseHeaderGatewayFilter修改Location响应标头的值,通常是为了消除后端特定的详细信息。有stripVersionMode、locationHeaderName、hostValue和protocolsRegex参数。protocolsRegx参数必须是有效的正则表达式......