要在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的安装和基本配置。


Zeno
1 声望0 粉丝