一、准备

1、首先创建一个新的项目django-admin startproject jinja
2、下载一下jinja的依赖:pip install jinja2
3、进入jinja文件夹,新建一个app python manage.py startapp app

二、环境创建

1、在app目录下创建一个jinja的基础环境,新建一个文件:base_jinja2.py
写入如下代码:

#coding:utf-8from jinja2 import Environment  # jinja2的虚拟环境
from django.contrib.staticfiles.storage import staticfiles_storage  # django的一些依赖
from django.urls import reverse  # urls需要和jinja进行一些配置def environment(**options):env = Environment(**options)  # 把一些配置文件添加进去env.globals.update({'static': staticfiles_storage.url,'url': reverse})return env

一个基础模板就创建好了。

然后我们需要将其配置进去,进入到settings,找到TEMPLATES,可以看到这里是Django的templates模板,现在我们需要将其换掉。

换成'BACKEND': 'django.template.backends.jinja2.Jinja2'
位置也改一下'DIRS': [os.path.join(BASE_DIR, 'templates')],
要在项目中也创建一下templates文件夹,顺便再建个static文件夹。

然后在TEMPLATEA的options中把虚拟环境也加上:

TEMPLATES = [{'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],'environment': 'app.base_jinja2.environment'},},
]

加上options中’environment’那句就可以了。
app中的base_jinja2中的environment函数。

再顺便把静态文件也配置一下STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),),不要忘记这是一个元组哦~

还有app也要注册哦!

三、效果

在templates文件夹下建一个text.html。
然后,view中定义一个简单的函数:

from django.shortcuts import render# Create your views here.def test(request):return render(request, 'text.html')

然后在根目录的urls中配置一下

from django.contrib import admin
from django.urls import path, include
from app.views import testurlpatterns = [path('admin/', admin.site.urls),path('test/', test)
]

在html中随便写一点东西,启动一下试试

启动OK的。

四、使用

views中定义个参数

def test(request):data = {'name': 'cong', 'age': 18}return render(request, 'test.html', data)

HTML中:

<label>{{name|title}}</label>

这个title是jinja中的函数,首字母大写

确实大写了。

在templates中新建一个base.html,把之前的base复制过来。
jinja里也可以用extends、block这些。和django模板用法差不多。

{% extends 'base.html' %}
{% block content %}{{name|title}},{{age}}{% endblock %}

五、区别

现在app下建一个filter文件,不过filter是Python的一个保留函数,所以使用时会出问题,还是改名成myfilter。
myfilter中定义个自定义过滤器:

def test(value, args):return value * args

然后要在base_jinja2中配置一下:

from .myfilter import testdef environment(**options):env = Environment(**options)  # 把一些配置文件添加进去env.globals.update({'static': staticfiles_storage.url,'url': reverse})env.filters['test'] = testreturn env

把myfilter中的test函数导入进来,然后environment函数中加入env.filter['test'] = test
这里出现了两个小问题:1、from .myfilter import testmyfilter是在当前文件夹下的,导入时要加个 .
2、env. 后面是filters,不要少了s

接下来,注意:jinja和django模板的过滤器传参是不同的,jinja使用()传参

{{name|title}},{{age|test(5)}}

使用一下这个自定义过滤器,将age的value乘以5。

六、静态文件如何导入

在static文件夹下再定义一个test.css,再写个背景颜色吧。

* {background-color: green;
}

然后在index.html中导入css

{% extends 'base.html' %}{% block css_style %}<link rel="stylesheet" href="/static/test.css" />{% endblock %}

这样就导入好了。django中还要load static,jinja就不用了,直接写在link 的 href中就好。

就变成绿色了。

所以,jinja是不能使用load来导入的,如果load还会报错。js文件也是一样的,写响应的static下的文件就可以了。

Django——jinja2配置与使用相关推荐

  1. Ubuntu16.04里django的配置和安装

    Ubuntu16.04里django的配置和安装 关于在Ubuntu16.04里django的配置和安装: sudo apt-get install python-pip sudo apt-get i ...

  2. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  3. django 日志配置

    django 日志配置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': ...

  4. Django环境配置

    Django安装 #安装最新版本的Django $ pip install django #或者指定安装版本 pip install -v django==1.7.1 项目创建 $ django-ad ...

  5. Python+Django数据库配置及使用——执行原始SQL并返回模型实例

    开发环境 OS:Windows Server 2012 Python:2.7.5 Django:1.5.2 通过 settings.py 配置数据库 参见:Python+Django数据库配置及使用- ...

  6. 新手python中Django环境配置

    Django环境配置 新手 python官网 Django官网 不支持的Django版本 Windows 10 搭建 Django 环境(详细教程) 已经安装过但版本不兼容(新手易踩雷问题)解决方案: ...

  7. 如何为 Django 服务配置负载均衡

    现在的 Web 服务有一个很重要的性能指标叫 QPS,QPS 的全称是 Queries Per Second 意思是"每秒查询率",是一台服务器每秒能够相应的查询次数,是对一个特定 ...

  8. Django Channels配置

    channels 4.0之后默认不带Daphne服务器了.解决方案可以有两种: 1.指定channels的版本为3.x: 2.安装时使用pip3 install -U channels["d ...

  9. Django路由配置-快速上手

    Django路由配置-快速上手 Django路由系统配置代码在urls.py中,该文件在创建项目时自动生成,一般在项目目录下. 路由系统URL基本格式 在urls.py文件中配置的路由,都存放在一个名 ...

  10. 【django】配置Jinja2模板引擎【2】

    1.安装Jinja2扩展包 pip install Jinja2 2.创建Jinja2模板引擎环境 在项⽬包⽬录-->utils⽬录中创建jinja2_env.py⽂件 from jinja2 ...

最新文章

  1. 第7集 构造函数中抛出的异常
  2. Reading Club week 3 prepare document
  3. python filter函数中写none_Python3基础 filter 第一个参数为NONE时 结果只返回为True的对象...
  4. C# DateTime ToString
  5. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 18丨即时食物配送 I【难度简单】​
  6. iOS LLDB console debug总结
  7. reveal end of document
  8. docker之快速部署gogs git
  9. 使用rdbtools分析redis内存使用
  10. 【DBN】Deep Belief Network简介
  11. c语言外部中断服务程序设计,手把手教你学单片机的C语言程序设计十二中断服务函数.pdf...
  12. 实用小工具-动软代码生成器
  13. 积少成多Flash(4) - ActionScript 3.0 实例之Hello World, 时钟, 计时器
  14. 前端开发SEO搜索引擎优化方案
  15. 无常之美·《炉香》-扎西拉姆·多多
  16. 变电站无线测温系统的特点与应用
  17. Java打造RPC框架(二):11个类实现简单Java RPC
  18. 联想笔记本电脑insert键占用,当鼠标变成小方块时,如何解决
  19. 不带搜索框,数据同步请求,产品按字母分组组件
  20. linux-top命令备忘

热门文章

  1. 2021年常规赛NBA球员数据分析
  2. MATLAB中isempty函数的用法
  3. Mysql数据表关系与关联查询
  4. dev:dev fatal: HttpRequestException encountered. remote: Invalid username or password. fatal: Authen
  5. word给图片插入题注并在文中交叉使用
  6. Doc2Vec 模型参数
  7. html怎么导航栏中加边框,html – 使用CSS在导航栏中显示边框三角形
  8. 每日一记—Android动态申请多个权限
  9. 数理统计复习笔记九——正态性检验
  10. 常用三种正态检验方法