• Django中使用jinjia2模板引擎的方法


    在Django中,有自带的模板引擎DjangoTemplates用来渲染模板,使用Django的模版语言,叫做DTL,Jinja2也是十分常见的模板渲染引擎,Django对Jinja2也提供了支持,那么如何将你的Django项目配置成使用Jinja2引擎呢?

    安装Jinja2

    首先,需要在当前环境中安装Jinja2: pip install jinja2 可以通过pip list查看当前python环境中安装的模块。

    配置文件

    Django的配置,一般是放在settings.py文件中,模板的配置也在此文件中,如果你是使用Django-admin startproject project_name来创建的项目的话,配置文件的默认路径为: ./project_name/project_name/settings.py 在配置文件中找到如下代码:

     1     TEMPLATES = [
     2     {
     3     'BACKEND': 'django.template.backends.django.DjangoTemplates',
     4     'DIRS': [],
     5     'APP_DIRS': True,
     6     'OPTIONS': {
     7     # ... some options here ...
     8     },
     9     },
    10     ]

    • 字段解释
      • BACKEND: 即配置的后端模板引擎
      • DIRS:默认为空列表,引擎搜索模板文件的路径
      • APP_DIRS:默认为True(使用Django-admin startproject创建),表示引擎是否去已安装的app路径下去搜索模板文件。

    这段代码即为Django默认生成的模板配置。所以,将引擎替换成Jinja2的第一步,就是修改这一段配置:

    OPTIONS

     1     TEMPLATES = [
     2     {
     3     'BACKEND': 'django.template.backends.jinja2.Jinja2',
     4     'DIRS': [],
     5     'APP_DIRS': True,
     6     'OPTIONS': {
     7     # ... some options here ...
     8     },
     9     },
    10     ]

    使用Jinja2时,需要在OPTIONS字段中,添加环境变量的路径,以使得模版API可以统一起来,你可以创建这样一个文件project_name/jinja2.py,内容如下:

     1 from django.contrib.staticfiles.storage import staticfiles_storage
     2 from django.urls import reverse      
     3 from jinja2 import Environment
     4 def environment(**options):
     5 env = Environment(**options)
     6 env.globals.update({
     7  'static': staticfiles_storage.url,
     8  'url': reverse,
     9  })
    10  return env

    并且在options中添加如下代码:

     1     TEMPLATES = [
     2     {
     3     'BACKEND': 'django.template.backends.jinja2.Jinja2',
     4     'DIRS': [],
     5     'APP_DIRS': True,
     6     'OPTIONS': {
     7     # ... some options here ...
     8     ‘project_name.jinja2.environment’
     9     },
    10     },
    11     ]

    至此,就可以在项目中愉快的使用Jinja2啦~

  • 相关阅读:
    状压DP
    题解:中位数
    题解:三只小猪
    二分图最大匹配
    AC自动机
    题解 P1137 【旅行计划】
    题解 P1280 【尼克的任务】
    DFT&IDFT学习笔记
    emacs配置
    莫比乌斯反演推导即μ函数的证明
  • 原文地址:https://www.cnblogs.com/hongdoudou/p/12572954.html
Copyright © 2020-2023  润新知