最近使用django模版感觉束手束脚的,准备换成jinja2。
替换django模版引擎为jinja2的方法:
1.安装jinja2,pip install jinja2(什么?没有pip,出门左转百度pip安装)
2.在你的app目录下创建jinja2_env.py(具体名称和位置随意,和下面的配置一样即可)。
jinja2_env.py文件中填写:
from __future__ import absolute_import # Python 2 only 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
原理大概是更新模版环境中的static和url方法,不加这个无法使用static和url方法。
3.修改django工程的setting.py,找到TEMPLATES
TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2',#jinja2模版 'DIRS': [ os.path.join(BASE_DIR, 'templates'),#模版文件位置 ], 'APP_DIRS': True, 'OPTIONS': { 'environment': 'XXX.jinja2_env.environment',#XXX为你的app名称, }, }, { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR, 'templates'), ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]上面的是jinja2的配置,下面的事django自动生成的配置,可同时存在,理论上应该可以混用吧,暂时没研究。