1.简介:
什么是Jinja2,Jinja2起什么作用
Jinja2是Python下一个被广泛应用的模版引擎,且它自带一个感觉挺nb的转义功能
作用1.它起了让前端和后端分离的作用
2.减少了Flask项目代码的耦合性,页面逻辑放在模板中,业务逻辑放在视图函数中,
3.提供控制语句/继承等高级功能
//Jijon的默认渲染路径是从template中找如果要改变,可以在Flask初始化的时候指定template_folder进行指定模板的路径
2.模板的渲染、传参
要渲染一个模板,可以通过render_template方法
render_template('xxx.html')
传参:
render_template('index.html',uanme(key)='momo')
页面取参
{ {key}}
当传递多个参数的时候可以将其以字典的形式封装,
count={
'name':'xxx',
'passwrod':'ppp',
'age':'18',
'shen':{
'xxx':'ttt' //总有闲人喜欢在搞点特殊调用的时候通过shen.xxx
}
}
render_template('xxx.htm',**count) //**可以将字典打散,然后直接掉key值就行,不用再加字典名称
3.模版中使用url_for
模版中的`url_for`跟我们后台视图函数中的`url_for`使用起来基本是一模一样的。也是传递视图函数的名字,也可以传递参数。使用的时候,需要在`url_for`左右两边加上一个`{ { url_for('func') }}`
通常在a标签中使用<a hef=`{ { url_for('func') }}'>
url_for后面跟着的两种参数传值
1.路径传值: {# /account/login/tantan/ 其中tantan为路径参数 #}
<a href="{
{ url_for('login',name='tantan') }}">登录4</a>
2.查询字串传值:
{# /account/login/tantan/?p1=lol&p2=daota #}<a href="{ { url_for('login',p1='lol',p2='daota',name='tantan') }}">登录5</a>
只用name的值作作为key键值名转换为变量,其余的都是直接默认加在后面的参数
4.过滤器:简单对参数进行一些处理然后在返回出去
使用方法:在调用的后面加‘|’字符
基本语法:`{ { variable|过滤器名字 }}`。使用管道符号`|`进行组合。
{ { postion|abs}}</p>
//常用发过滤器的种类及作用:
default(value,default_value,boolean=false):如果当前变量没有值,则会使用参数中的值来代替。