【Django】將Django模板引擎更改為Jinja2
安裝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 是用來傳參的元組,所以不能省略後面的逗號
相關文章
- Django 模板引擎以及模板Django
- Django(2) - Django模板Django
- Django模板Django
- Flask 使用Jinja2模板引擎Flask
- Django模板層Django
- Django-模板Django
- Django 模板層Django
- Django模板templateDjango
- django的模板層Django
- Django——模板應用Django
- Django中更改預設資料庫為mysqlDjango資料庫MySql
- Django之mako模板使用Django
- Django 模板複用includeDjango
- django學習--templates模板Django
- Django 基礎教程 - 模板Django
- [Dynamic Language] Python Django: 模板引擎(2)上下文ContextPythonDjangoContext
- django-模板之標籤Django
- Django的檢視和模板Django
- Django 模板中使用css, javascriptDjangoCSSJavaScript
- Django整合搜尋引擎ElasticserachDjangoAST
- django-模板層基礎2Django
- Django 模板標籤-第26篇Django
- Django模板系統 — 過濾器Django過濾器
- django初識(以django4.2.11為例)Django
- 管理平臺模板 Django REST Framework +ElementUIDjangoRESTFrameworkUI
- Django中的模板渲染是什麼Django
- Python全棧Web(Django框架、模板)Python全棧WebDjango框架
- django 模板語言的註釋操作Django
- Django學習(二) 之 模板的使用Django
- Python日記——Django模板的渲染PythonDjango
- python Django模板的使用方法PythonDjango
- django+小程式傳送模板訊息Django
- Django(31)模板中常用的過濾器Django過濾器
- django模板怎麼配置檢視和urlDjango
- Django4:模板(zhong)—常用過濾器Django過濾器
- Django基礎三之路由、檢視、模板Django路由
- 使用Django suit或Bootstrap美化admin模板DjangoUIboot
- dya49:django:wsgrief&模板渲染Jinjia2&django的MTV/MVC框架&建立/啟動一個django專案DjangoMVC框架