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 %}
修改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)
修改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 %}
我们用**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)
修改templates/plan.html

{% extends 'base.html' %} {% block main1 %} <h1>这是main1提交的新内容{{ name1 }}</h1> {% endblock %} {% block main2 %} <h3>这是main2提交的新内容{{ name2 }}</h3> {{ date }} {{ time.P_start }} {% endblock %}
这次我们引入了类的概念,把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)
修改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 %}
字典的嵌套,我们把date ,train ,track嵌套在train中
在模板中使用train.date train.train train.track来渲染。
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/8130172.html
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现