20200718《Flask进阶》——模板

  • 模板引擎:Jinja2
  • 渲染模板函数:render_template(),参数为HTML文件(文件路径是相对templates文件夹的)和传入参数
  • 在模板中自定义变量:set标签(也可以将一部分模板数据定义为变量
  • Flask的内置变量:config、request、session、g
  • 设置模板全局变量(用于多个模板都需要使用同一变量的情况):装饰器——app.context_processor,注册一个模板上下文处理函数,返回包含变量键值对的字典
  • Jinja2常用的内置全局函数:range、lipsum、dict等
  • Flask内置全局函数:url_for、get_flash_message
  • 自定义全局函数:app.template_global装饰器可直接将函数定义为模板全局函数
  • 过滤器(filter),可以过滤单个变量,也可以作用与一部分模板数据
  • 自定义过滤器:app.template_filter()装饰器
  • 测试器,是用来测试变量或表达式返回布尔值的函数,用is链接变量和测试器
  • 自定义测试其:app.template_test()装饰器
  • 模板环境对象:在Jinja2中,渲染行为由jinja2.Enviroment类控制,所有的配置项、上下文变量、全局函数、过滤器、测试器都存储在Enviroment实例上,与Flask结合后,使用flask提供的Enviroment对象,它存储在app.jinja_env属性上,然后可以:
    • 自定义全局对象:app.jinja_env.globals[‘bar’] = bar
    • 自定义过滤器: app.jinja_env.filters
    • 自定义测试其: app/jinja_env.tests
  • 局部模板,为了和普通模板区分,局部模板通常用下划线开头
  • 宏,类似函数,通常单独把宏存储在一个文件中,命名为macros.html或_macros.html
  • 模板的继承:块的开始和结束用block和endblock标签来声明
  • 声明扩展模板:{% extends ‘base.html’ %}
  • 模块的覆盖:在子模块中定义同名的模块时,会覆盖父模块的内容
  • 追加内容:{{ super }}
  • 加载静态文件:用url_for获取静态文件URL,默认URL规则为:/static/path:filename,例如:url_for(‘static’, filename=‘abc.jpg’)
  • 消息闪现:flash函数,使用flash发送的消息会存储在session中,需要在模板中使用全局函数get_flash_message()获取消息并显示出来
    注:因为要存储在session中,所以需要设置密钥
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值