栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

JinJa2模板1

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JinJa2模板1

目录

定义

添加Python语句和表达式

1.语句

2.表达式

3.注释

for循环特殊变量

渲染模板

上下文

模板中定义变量(set标签)

内置上下文变量

 自定义山下文


定义

模板引擎的作用就是读取并执行模板中的特殊语法标记,并根据传入的数据将变量替换为实际值,输出最终的HTML页面,这个过程被称为渲染( rendering)。

添加Python语句和表达式

1.语句

if判断、for循环等


{% ... %}


{% if user.bio %}
    {{ user.bio }}
{% else %}
    This user has not provided a bio.
{% endif %}
{% for movie in movies %} 
    
  • {{ movie.name }} - {{ movie.year }}
  • {% endfor %}

    2.表达式

    字符串、变量、函数调用等


    {{  ....  }}


    3.注释

    {#  ..... #}


    for循环特殊变量

    渲染模板

    渲染函数 :render_template()

    from flask import Flask,render_template
    
    @app.route('/')
    def hello_world():
        user = '123'
        name = 'zhangsan'
        return render_template('index.html',user=user,name=name)
    
    if __name__ == '__main__':
        app.run()
    

    函数说明

    render_template()函数中,第一个参数为模板文件名,第二个参数为传入模板的变量(前面的user是模板内名称、后面的是要传的变量)

    第二个参数设置为**locals(),实现给模板传递全部的本地变量,在模板中可以直接使用{{user}}、{{name}}。

    注:render_template_string()函数用来渲染模板字符串。

    return render_template_string('index')  #可以执行html标签语句

    上下文

    模板中定义变量(set标签)
    {% set navigation = [('/', 'Home'), ('/about', 'about')] %}

    将一部分模板数据定义成变量

    {% set navigation %} 
        
  • Home
  • about {% endset %}
  • 内置上下文变量

    标准模板全局变量

     自定义山下文

    设置模板全局变量

    app.context_processor装饰器,可以注册模板上下文处理函数,可以完成统一传入变量的工作,模板上下文函数需要返回一个包含变量键值对的字典。

    @app.context_processor 
    def inject_foo(): 
        foo = 'I am foo.' 
        return dict(foo=foo) # 等同于return {'foo': foo}

    在调用render_template()函数渲染模板时,所有使用app.context_processor装饰器注册的模板上下文处理函数都会被执行,这些函数的返回值回被添加到模板中,在模板中就可以直接使用foo变量。

    将app.context_processor作为方法调用,传入模板上下文处理函数

    def inject_foo(): 
        foo = 'I am foo.' 
        return dict(foo=foo) 
    app.context_processor(inject_foo)

    使用lambda简化

    app.context_processor(lambda: dict(foo='I am foo.'))

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/294347.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号