虽然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