Django教程
- Jinja2配置自定义过滤器
- Django教程-定时任务crontab
- 解决uwsgi报错:No such process [core/uwsgi.c line 1693]
- 解决-doesn't declare an explicit app_label and isn't in an application in INSTALL
- Django教程-Model字段大全,选项详解
- Django教程-子应用添加后台管理
- Django教程-安装DjangoUeditor3
- Django教程-设置默认导包路径
- Django教程-Django配置redis
- Django教程-django配置mysql数据库
- Django教程-uwsgi配置详解
- 解决:Django定时器无法启动
- Django教程-Django中配置jinja2模板
- Django教程-创建一个最简单的django项目
Django教程-Django中配置jinja2模板
Django教程-Django中配置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
2.1 在项目目录(manage.py同级目录)中创建 jinja2_env.py文件,并加入如下代码:
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
2.2在settings.py文件把原来的TEMPLATES代码改为如下代码:
''' 模板 参考:https://www.jianshu.com/p/571ba944b4e2 其实就是前台和后台的模板引擎分开,前台模板引擎是jinja2,后台的模板引擎是django默认的引擎 ''' TEMPLATES = [ # 默认的模板引擎,用来后台admin { 'BACKEND': 'django.template.backends.django.DjangoTemplates', # 调用模板的原理就是默认在每个应用下面搜索templates文件夹,如果'DIRS': ['']为空,则默认是admin下面的templates文件夹 'DIRS': [''], '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模板,用来前台显示 # 因为前台子应用的apps下面没有默认的templates文件夹,所以就用'DIRS': [os.path.join(BASE_DIR, 'templates')下的模板文件夹 # ], { 'BACKEND': 'django.template.backends.jinja2.Jinja2' , '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', ], 'environment':'my_jinja2.environment', }, }, ]
3,jinja2模板安装完成
jinja2模板的使用绝大多数和Django自带模板一样
最后修改:2020年4月22日 23:45