【Django】将Django模板引擎更改为Jinja2

xiaoxiao2021-02-28  52

安装Jinja2


从 Django1.8 开始,支持第三方模板引擎

使用如下命令安装 Jinja2

pip install jinja2

配置


首先,在项目配置目录下建立一个jinja2_env.py,内容如下

# from __future__ import absolute_import # 如果是py2就取消这行的注释 from django.contrib.staticfiles.storage import staticfiles_storage from django.urls import reverse from jinja2 import Environment def environment(**options): env = Environment(**options) env.globals.update({ 'static': staticfiles_storage.url, 'url': reverse, }) return env

然后在 setting.py 设置

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

url和static函数


在 Django 模板中,url 和 static 函数应该像如下使用

{% url 'auth:login' parameter %} {% static 'image/avatar/1.jpg' %}

而在 Django 的 Jinja2 中需要更改成如下方式

{% url('auth:login', args=(1,)) %} {% static('image/avatar/1.jpg') %}

在 url 函数中的 args 是用来传参的元组,所以不能省略后面的逗号

转载请注明原文地址: https://www.6miu.com/read-2630942.html

最新回复(0)