• Flask初级(六)flash模板渲染


    Project name :Flask_Plan

    templates:templates

    static:static

    继续上篇的模板

    我们已经可以静态调用模板,包括继承模板,保证了页面的一致性,但是我们查询的东西,页面还都是在html文件中的。

    渲染,就可以让我们把动态的内容,放进静态的模板中。

    修改templates/plan.html 

    {%  extends 'base.html' %}
    {% block main1 %}
        <h1>这是main1提交的新内容{{ name1 }}</h1>
    {% endblock %}
    {% block main2 %}
        <h3>这是main2提交的新内容{{ name2 }}</h3>
    {% endblock %}
    View Code

    修改Flask_Plan.py

    @app.route('/')
    def hello_world():
        return render_template('plan.html',name1='测试name1的渲染',name2 ='name2渲染')   

    就这一行要改的。

    访问首页的返回用render_template渲染基于base.html的子模板plan.html,并给其中的两个模板变量赋值。

    试试吧。

    单个模板变量的渲染不过瘾,我们多搞几个,不用这样写一堆变量传进去。

    修改Flask_Plan.py

    @app.route('/')
    def hello_world():
        plan = {
            'date': '2017-12-12',
            'train': 'T198',
            'track': 10,
            'start_time': '10:00',
            'end_time': '12:00',
            'plan_end': '8:30',
            'plan_in': '9:30',
            'plan_out': '18:00',
            'plan_start': '20:40'
    
        }
    
        return render_template('plan.html', **plan)
    View Code

    修改templates/plan.html 

    {%  extends 'base.html' %}
    {% block main1 %}
        <h1>这是main1提交的新内容{{ name1 }}</h1>
    {% endblock %}
    {% block main2 %}
        <h3>这是main2提交的新内容{{ name2 }}</h3>
        {{ train }}  <br>
        {{ date }}<br>
        {{ track }}<br>
        {{ start_time }}<br>
        {{ end_time }}<br>
        {{ plan_end }}<br>
        {{ plan_in }}<br>
        {{ plan_out }}<br>
        {{ plan_start }}<br>
    {% endblock %}
    View Code

    我们用**plan这个参数,把plan这个字典传入了模板渲染引擎,在plan.html这个模板中直接使用字典索引来显示值。

    使用更多的模板变量。

    修改Flask_Plan.py

    def hello_world():
        class plan(object):
            P_end = '8:45'
            P_in = '9:30'
            W_start = '10:00'
            W_end = '12:00'
            P_out = '18:00'
            P_start = '20:40'
    
        p1 = plan()
    
        plan = {
            'date': '2017-12-12',
            'train': 'T198',
            'track': 10,
            'time': p1,
    
        }
    
        return render_template('plan.html', **plan)
    View Code

    修改templates/plan.html 

    {%  extends 'base.html' %}
    {% block main1 %}
        <h1>这是main1提交的新内容{{ name1 }}</h1>
    {% endblock %}
    {% block main2 %}
        <h3>这是main2提交的新内容{{ name2 }}</h3>
    {{ date }}
    {{ time.P_start }}
    {% endblock %}
    View Code

    这次我们引入了类的概念,把time赋值为实例化的plan,在模板中用 time.***来渲染。

    我们也可以用字典的嵌套。

    修改Flask_Plan.py

    @app.route('/')
    def hello_world():
        class plan(object):
            P_end = '8:45'
            P_in = '9:30'
            W_start = '10:00'
            W_end = '12:00'
            P_out = '18:00'
            P_start = '20:40'
    
        p1 = plan()
    
        plan = {
            'train': {
    
                'date': '2017-12-12',
                'train': 'T198',
                'track': 10,
            },
            'time': p1,
    
        }
    
        return render_template('plan.html', **plan)
    View Code

    修改templates/plan.html 

    {%  extends 'base.html' %}
    {% block main1 %}
        <h1>这是main1提交的新内容{{ name1 }}</h1>
    {% endblock %}
    {% block main2 %}
        <h3>这是main2提交的新内容{{ name2 }}</h3>
    {{ train.date }}
    {{ time.P_start }}
    {% endblock %}
    View Code

    字典的嵌套,我们把date ,train ,track嵌套在train中

    在模板中使用train.date train.train train.track来渲染。

  • 相关阅读:
    SAM4E单片机之旅——2、LED闪烁之轮询定时器
    SAM4E单片机之旅——1、LED闪烁之空循环
    C#使用WinAPI 修改电源设置,临时禁止笔记本合上盖子时睡眠
    阻止系统自动睡眠的小软件,附C#制作过程
    Python3做采集
    判断浏览器类型
    任意几个数求和
    常见Z纯CSS小样式合集(三角形)
    数据脱敏项目中遇见的问题
    点击左侧跳到右侧
  • 原文地址:https://www.cnblogs.com/jackadam/p/8130172.html
Copyright © 2020-2023  润新知