@TOC
1.安装jinja2模板
# pip install Jinja2 -i https://pypi.doubanio.com/simple/
2.在项目目录下创建jinja2环境变量文件
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, # 模板出现static,调用url函数
'url':reverse # 模板出现url,调用reverse函数
})
return env # 返回修改后的环境变量
3.修改setting中TEMPLATES配置
TEMPLATES = [
{ # 将django模板引擎修改为jinja2
'BACKEND': 'django.template.backends.jinja2.Jinja2'
,
# 模板目录名可根据需求修改,但修改后的模板目录名必须存在
'DIRS': [os.path.join(BASE_DIR, 'jinja_templates')]
,
'APP_DIRS': True,
'OPTIONS': {
# 添加已修改过的环境变量
'environment':'Zero.jinja_env.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',
],
},
},
]
WSGI_APPLICATION = 'Zero.wsgi.application'
4.注释使用django原模板的admin应用及路由
注意:一定要注释该应用及其url路由,否则会报错: (admin.E403) A’django.template.backends.django.DjangoTemplates’ instance must be configured in TEMPLATES in order to use the admin application.
5.配置urls路由及view视图函数
示例:
应用url:
from django.urls import path
from app import views
urlpatterns = [
path('',views.index)
]
项目url:
from django.urls import path, include
urlpatterns = [
# path('admin/', admin.site.urls),
path('app/',include('app.urls'))
]
views:
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request,'index.html')
6.测试模板
jinja2模板可直接使用表达式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>templates from jinja2</h1>
{# jinja2可以直接写表达式 #}
{{ 1+2 }}
{% for x in range(10) %}
<li>{{ x }}</li>
{% endfor %}
</body>
</html>