Django中使用jinja2模板

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/geek64581/article/details/102698789

jinja2介绍

Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,尤其是Flask框架内置的模板语言

Django主流的第三方APP基本上也都同时支持Django默认模板及jinja2,所以要用jinja2也不会有多少障碍。

1. 安装jinja2模块

pip install jinja2

2. Django配置jinja2

2.1 在项目文件中创建 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文件,更改默认模板为jinja2; 并配置模板存放的目录

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',#修改1
        'DIRS': [os.path.join(BASE_DIR, 'templates')], # 模板目录
        'APP_DIRS':True,
        'OPTIONS':{
            'environment': 'jinja2_env.environment',# 修改2
            'context_processors':[
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3. 定义模板

3.1 在templates目录中新建一个模板文件,如index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>{{ city }}</h1>
</body>
</html>

4. 模板渲染

Django提供了一个函数render实现模板渲染。

render(request对象, 模板文件路径, 模板数据字典)

from django.shortcuts import render

def index(request):
    context={'city': '北京'}
    return render(request,'index.html',context)

5. pycharm更改默认模板

5.1 找到Template配置,默认是Django
在这里插入图片描述
在这里插入图片描述
5.2 下拉选择Jina2并点击OK
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/geek64581/article/details/102698789