Django使用jinja2模板
Django使用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
说明:这里创建我们自己的environment替代jinja2中自带的environment,用于后续的拓展,比如自定义过滤器
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,使用自定义的environment '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自带模板一样
- 没有多行注释
- 循环使用loop关键字
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 "哈哈"
说明:自定义过滤器后,在模板中{{}}中可以直接使用:
{{do_listreverse(参数)}}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构