Django——jinja2模板

2023-05-16

Django中使用jinja2模板

  • 前言
  • jinja2介绍
  • 1.安装jinja2模块
  • 2.Django配置jinja2
  • 3.jinja2模板的使用绝大多数和Django自带模板一样
  • 4.jinja2自定义过滤器


前言

jinja2介绍

Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,尤其是Flask框架内置的模板语言

由于django默认模板引擎功能不齐全,速度慢,所以我们也可以在Django中使用jinja2, jinja2宣称比django默认模板引擎快10-20倍。

Django主流的第三方APP基本上也都同时支持Django默认模板及jinja2,所以要用jinja2也不会有多少障碍。

1.安装jinja2模块

pip install jinja2

2.Django配置jinja2

1.在项目文件中创建 jinja2_env.py 文件

from jinja2 import Environment

def environment(**options):
    env = Environment(**options)

    return env

2.在settings.py文件

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',#修改1
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS':True,
        'OPTIONS':{
            'environment': 'jinja2_env.environment',# 修改2
            'context_processors':[
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3.jinja2模板的使用绝大多数和Django自带模板一样

1.for循环有差异
for循环

4.jinja2自定义过滤器

在jinja2_env.py文件中自定义过滤器

from jinja2 import Environment

def environment(**options):
    env = Environment(**options)

    # 2.将自定义的过滤器添加到 环境中
    env.filters['do_listreverse'] = do_listreverse

    return env

# 1.自定义过滤器
def do_listreverse(li):
    if li == "B":
        return "哈哈"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django——jinja2模板 的相关文章

  • Django - 没有名为 _sqlite3 的模块

    我在 rhel 5 上安装了 django 1 4 默认情况下 rhel 5 中有 python 2 4 但要使用 django 1 4 我手动安装了 python 2 7 3 开发服务器运行良好 但是当我创建一个新项目并将 setting
  • Django 迁移 - 禁用系统检查

    我从 Django 1 7 升级到 Django 1 9 我有多次迁移 自从升级以来 我无法再创建新的数据库 问题是 django manage py migrate 运行检查 检查导入应用程序 URL 这些最终导入查找数据库的代码 我可以
  • DJANGO:如何列出_显示反向外键属性?

    我正在构建一个网络应用程序来跟踪一个人借阅的图书馆书籍 我有以下型号 class Person models Model name models CharField max length 100 def unicode self retur
  • 所有 disqus 评论都显示在所有博客页面上

    我构建了一个博客类型的应用程序 在 Django 中 我正在尝试使用 DISQUS 来集成评论montylounge 的 django disqus http github com montylounge django disqus 但所有
  • manage.pysyncdb 不会为某些模型添加表

    今天我的第二个不太熟练的问题 我有一个 django 项目 其中安装了四个应用程序 当我运行manage py syndb时 它只为其中两个创建表 据我所知 我的任何模型文件都没有问题 并且所有应用程序都在我的设置文件中的 INSTALLE
  • Jinja2 为 Google App Engine 模型返回“None”字符串

    Google App Engine 模型 如下所示 from google appengine ext db import Model class M Model name db StringProperty 然后在从 Django 视图调
  • 带有 ManyToMany 和直通表的 Graphene-django

    我的应用程序有多个多对多关系具有贯穿模型像这样 class Person models Model name models CharField class Group models Model name models CharField m
  • HTML - 使用 JS 根据值更改文本颜色

    我正在使用 Django 创建一个以 HTML 形式显示的表格 我想当数字为负数时将数字的颜色更改为红色 当数字为正数时将数字的颜色更改为绿色 我知道我需要使用 JS 来实现这一点 但我无法让它工作 任何帮助将不胜感激 这是我的 Djang
  • Django 迁移 RunPython 无法调用模型方法

    我正在使用以下命令创建数据迁移RunPython方法 但是 当我尝试在对象上运行方法时 没有定义任何方法 是否可以使用调用模型上定义的方法RunPython 模型方法在迁移中不可用 包括数据迁移 然而 有一个解决方法 它应该与调用模型方法非
  • 如何为 bcrypt.hashpw 设置盐?

    salt yhnqazolr123098765 password bcrypt hashpw password salt repeatpassword bcrypt hashpw repeatpassword salt 我在第二行遇到错误
  • Django Rest Framework 分页设置 - 内容范围

    6 30 15 我怎样才能让这个问题变得更好并且对其他人更有帮助 反馈会有帮助 谢谢 我使用 DRF 作为 Dojo Dgrid Web 应用程序的服务器端 Dojo 需要来自服务器的内容范围或范围响应 目前它不发送任何内容 因此 dgri
  • 替换 {{ super() }} 中的块

    我有一个基本模板 其中包含默认块内容 在头部块内 有一个块用于
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • 使用 nginx 在云上部署 django 和 React

    我有一个 digitalocean 服务器 并且已经使用 Gunicorn 和 nginx 部署了 Django 后端服务器 如何在同一台服务器上部署 React 应用程序 您可以构建 React 应用程序并使用 Nginx 提供其静态文件
  • Django:管理中的 AJAX ManyToManyField

    我要显示ManyToManyFields 在 admin 中就像filter horizontal确实如此 但会在用户在过滤器字段中键入内容时填充选项 有很多选项 一次性加载它们需要很多时间 I found django ajax 过滤字段
  • 对原始模型进行预过滤后的相关对象的 Django 查询集

    给定一个模型的查询集 我想获取通过外键相关的另一个模型的查询集 采用 Django 项目文档的博客架构 class Blog models Model name models CharField max length 100 tagline
  • Django 响应总是用 text/html 分块无法设置内容长度

    在我的Django应用程序的views py中 我在尝试设置以下HTTP标头字段后返回一个HttpResponse对象 Create a Response Object with the content to return response
  • 如何在 success_url 中传递上下文数据?

    我制作了一个表单 我希望再次返回相同的表单 这次使用可在我的模板中使用的上下文数据来显示表单已成功发送 我怎样才能做到这一点 class ContactUsView FormView form class ContactUsForm tem
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用

随机推荐

  • 非主线程(GUI线程)中实现弹窗

    非主线程 xff08 GUI线程 xff09 中实现弹窗 目录一 在非主线程 xff08 GUI线程 xff09 中实现弹窗Step 1 创建界面文件 ui run loop dialog py Step 2 xff1a 代码主体 run
  • PyQT——多线程(QThread)

    PyQT线程 xff1a 多线程QThread 前言一 应用场景二 使用多线程解决卡顿和假死第一种 xff1a 线程锁 QMutex 第二种 xff1a 信号 Signal 前言 一 应用场景 在编写GUI界面中 xff0c 通常用会有一些
  • OpenCV-Python ——图像加文字

    Opencv 视频添加文字和标记框 前言一 OpenCV添加文字问题二 解决思路1 OpenCV图片转换为PIL图片格式2 使用PIL绘制文字3 PIL图片格式转换成OpenCV的图片格式 三 完整代码 前言 最近做了个视屏实时处理的需求
  • Django——工程搭建

    Django的工程搭建 目录 Django的工程搭建一 环境搭建1 创建虚拟环境2 安装Django3 虚拟环境和pip的命令 二 创建工程1 创建2 工程目录说明3 运行开发服务器 三 创建子应用1 创建2 子应用目录说明3 注册安装子应
  • Django——配置静态文件与路由

    静态文件与路由 一 配置文件1 BASE DIR2 DEBUG3 本地语言与时区 二 静态文件三 路由说明1 路由定义位置2 路由解析顺序3 路由命名与reverse反解析 xff08 逆向 xff09 3 1 路由命名3 2 revers
  • Django——请求与响应

    请求与响应 一 请求Request1 URL路径参数2 Django中的QueryDict对象3 查询字符串Query String4 请求体4 1 表单类型 Form Data4 2 非表单类型 Non Form Data 5 请求头6
  • 设计模式——单例模式/工厂模式

    设计模式 前言一 单例模式第 1 种 xff0c 重写 new 方法第 2 种 xff0c 闭包定义装饰器第 3 种 xff0c 多线程中构建单例 二 工厂模式1 简单工厂2 工厂方法3 抽象工厂 前言 常见的设计模式 xff0c 它们是
  • STM32 Futaba SBUS协议解析

    STM32 Futaba SBUS协议解析 1 S BUS1 1 协议介绍1 2 协议解析 2 硬件设计2 1 硬件参数2 2 反相电路 3 程序设计3 1 数据接收3 2 数据处理 4 最后 1 S BUS 1 1 协议介绍 S BUS是
  • Django——类视图

    类视图 前言1 类视图1 类视图引入2 类视图使用 2类视图原理3类视图使用装饰器3 1 在URL配置中装饰3 2 在类视图中装饰 4 类视图Mixin扩展类 前言 提示 xff1a 这里可以添加本文要记录的大概内容 xff1a 例如 xf
  • 设计模式——观察者模式

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 观察者模式 认识观察者模式观察者模式定义一 应用案例二 Python 实现总结 认识观察者模式 我们先看看报纸和杂志的订阅是怎么回事 xf
  • 面向对象设计原则

    面向对象设计原则是设计模式的基础 xff0c 每一个设计模式都符合某一个或者多个面向对象设计原则 xff0c 面向对象设计原则是用于评价一个设计模式的使用效果的重要指标之一 单一职责原则 一个对象应该只包含单一的职责 xff0c 并且该职责
  • 线程互斥锁 Lock

    线程互斥锁 Lock 前言Python 线程互斥锁1 创建互斥锁锁定资源 解锁资源 Python 线程死锁1 引入库 重点总结 前言 Python 线程互斥锁 1 创建互斥锁 span class token comment 导入线程thr
  • 多线程互斥锁Lock和RLock区别

    Python多线程互斥锁Lock和RLock区别 互斥锁Lock和RLock介绍互斥锁Lock互斥锁RLock区别 特殊情况 互斥锁Lock和RLock介绍 互斥锁Lock Lock被称为 原始锁 xff0c 原始锁是一个 在锁定时不属于特
  • 信号量semaphore

    python线程信号量semaphore 前言一 简介semaphore信号量相关函数semaphore信号量使用 前言 一 简介 多线程同时运行 xff0c 能提高程序的运行效率 xff0c 但是并非线程越多越好 xff0c 而semap
  • 线程事件 Event

    Python 线程事件 Event 前言一 介绍二 原理三 应用四 总结 前言 一 介绍 set 全局内置标志 Flag xff0c 将标志 Flag 设置为 True 通知在等待状态 wait 的线程恢复运行 isSet 获取标志 Fla
  • 线程定时器 Timer

    Python 线程定时器 Timer 原理 前言一 原理二 应用总结 前言 一 原理 指定时间间隔后启动线程 xff01 适用场景 xff1a 完成定时任务 xff0c 例如 xff1a 定时提醒 闹钟等等 span class token
  • 线程条件变量 Condition

    Python 线程条件变量 Condition 函数 前言 一 原理 二 应用 案例一 成语接龙 案例二 生产者与消费者模式 总结 前言 Python 互斥锁 Lock 主要作用是并行访问共享资源时 保护共享资源 防止出现脏数据 Pytho
  • Django——中间件

    Django中间件 前言1 中间件的定义方法2 执行流程3 多个中间件的执行顺序 前言 Django中的中间件是一个轻量级 底层的插件系统 xff0c 可以介入Django的请求和响应处理过程 xff0c 修改Django的输入或输出 中间
  • C语言中关于全局变量的深入理解及使用方式

    以前觉得全局变量很简单 xff0c 没有好好思考和理解 xff0c 看到其他项目中的一些用法不太理解 xff0c 最近正好有空 xff0c 好好梳理了一下关于全局变量的定义和引用 总的来说 xff0c 有以下几种方式 xff1a 方式1 x
  • Django——jinja2模板

    Django中使用jinja2模板 前言jinja2介绍1 安装jinja2模块2 Django配置jinja23 jinja2模板的使用绝大多数和Django自带模板一样4 jinja2自定义过滤器 前言 jinja2介绍 Jinja2