Loading

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来渲染。

posted @ 2017-12-28 01:41  上官飞鸿  阅读(639)  评论(0编辑  收藏  举报