要在Django項目中使用Jinja2作為模板引擎,你需要安裝並配置django-jinja庫。以下是安裝和基本配置的步驟:
安裝 django-jinja
首先,確保你的環境中已經安裝了pip,然後通過pip安裝django-jinja:
pip install django-jinja
配置 Django 使用 django-jinja
接下來,你需要在你的Django項目的settings.py文件中配置模板引擎,使其使用django-jinja。
修改 TEMPLATES 設置:
打開你的settings.py文件,找到TEMPLATES設置,它應該是一個列表。你需要修改或添加一個新的字典項來指定Jinja2作為模板引擎。示例如下:
TEMPLATES = [
{
'BACKEND': 'django_jinja.backend.Jinja2',
'APP_DIRS': True,
'OPTIONS': {
# 添加全局環境變量、過濾器等在這裏
'environment': 'yourproject.jinja2.environment',
},
},
# 默認的Django模板引擎配置,如果還需要使用的話
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
...
},
]
創建 Jinja2 環境配置:
在你的應用目錄下(或任何你認為合適的Python模塊內),創建一個jinja2.py文件,用來定義Jinja2的環境配置。例如:
# yourproject/jinja2.py
from django_jinja import base
def environment(**options):
env = base.Environment(**options)
# 添加過濾器、測試、全局變量等
# env.filters['myfilter'] = my_filter_function
# env.globals['myglobal'] = my_global_variable
return env
在這個文件中,你可以自定義Jinja2環境,包括添加全局變量、過濾器、測試等。
使用 Jinja2 模板
現在,Django已經配置好使用Jinja2作為模板引擎了。Jinja2模板應保存在應用的templates目錄下,並且默認情況下,Django會自動查找與視圖函數關聯的應用的templates目錄。
例如,你可以在你的應用的templates目錄下創建一個名為index.html的Jinja2模板,並像下面這樣使用宏(macro):
<!-- templates/index.html -->
{% macro say_hello(name) %}
<p>Hello, {{ name }}!</p>
{% endmacro %}
{{ say_hello("World") }}
確保你的視圖函數返回渲染這個模板的響應,例如:
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
這樣,你就完成了在Django項目中使用django-jinja的安裝和基本配置。