Django之设置jinja2模板与自定义过滤器

本文对比了Django自带模板与Jinja2模板的使用差异,详细讲解了访问列表、字典值的不同语法,for循环中的局部变量处理方式,以及空列表的判断条件。同时介绍了如何在Django项目中配置并使用Jinja2模板,包括安装、设置、自定义过滤器等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然Django也自带模板   但是为了编程效率与编程体验   我们一般使用jinja2模板(自称运行效率十倍于Django自带模板) 

 

至于二者区别  就说一些   大家想详细了解的话可以去搜索一下

1 访问列表或者字典值的时候:
Django:  {{ list.index }}   {{ dict.key }}
jinja2:  {{ list[index] }}   {{ dict['key']}}
 
 
2: for循环中的局部变量(数据下标)
Django: forloop.counter0
jinja2 :  loop.index0
 
3:  空列表
 
Django: {% empty %}
jinja2 : {% else %}
 

 

 

一   首先安装jinja2模板  

pip3 install jinja2

 

然后到setting.py中设置   修改TEMPLATES模板

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  在项目文件中创建 jinja2_env.py 文件  并在文件中添加以下内容

from jinja2 import Environment

def environment(**options):
    env = Environment(**options)

    return env

 

 

 

4  然后设置Pycharm中模板为jinja2

 

file------>setting------>Language&Templates------>Python Template Langiages   设置为jinja2

 

 

 

二 jinja2虽然有很多过滤器, 但总有满足不了自己需求的时候  这时候就需要我们自己定义过滤器  (注意: Django自带模板自定义过滤器时一定要注意:  app应用文件夹中创建一个templatetags文件,文件必须是这个名字)

在刚刚创建的jinja2_env.py文件中  写下面类型代码

env.filters['自定义过滤器名称'] = 自定义函数

def 自定义函数():

             pass 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值