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来渲染。
Flask初级(六)flash模板渲染的更多相关文章
- Flask -- 静态文件 和 模板渲染
静态文件 一般用于存放图片,样式文件(css, js等) 保存位置:包中或者文件所在目录创建一个 static 目录 访问:在应用中使用 /static/...即可访问 , 更好的方式是使用url_f ...
- Flask中的request模板渲染Jinja以及Session
Flask中的request与django相似介绍几个常用的以后用的时候直接查询即可 1.request from flask import request(用之前先引用,与django稍有不同) r ...
- flask学习(九):模板渲染和参数传递
一. 如何渲染模板 1. 模板放在templates文件夹下 2. 从flask中导入render_template函数 3. 在视图函数中,使用render_template函数,渲染模板 注意:只 ...
- flask框架下的jinja2模板引擎(1)(模板渲染)
#转载请留言联系 模板是什么? 在 flask 框架中,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.模板作用即是承担视图函 ...
- Flask(1):基本示例、配置文件、路由、请求和响应、模板渲染
Flask的特点: - pip install flask - 短小精悍.可扩展性强的 web框架 注意:上下文管理机制 - 依赖 wsgi:werkzeug Flask的简单示例: from fla ...
- Python Web Flask源码解读(三)——模板渲染过程
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...
- Flask模板渲染
目录 Flask模板渲染 Jinja2模板引擎简介 模板 Jinja2 模板变量 变量 控制结构 宏,类似Python代码中的函数 模板继承 包含(Include) 过滤器 链式调用 常见内建过滤器 ...
- (4)Flask项目模板渲染初体验
一.准备静态资源 将项目使用到的静态资源拷贝到static目录 二.创建前台首页html 创建templates/home/home.html页面,内容包含导航和底部版权两部分,中间内容区域为模板标签 ...
- Flask 的模板渲染
Flask 的模板渲染 渲染模板语言和django很像,都是用{{}},{%%} 注意点: 1 flask给模板传值,render_template("index.htm",use ...
随机推荐
- Python3基础 set add 向集合中加入新的元素
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Python3基础 try-指定except-as reason 捕获打开一个不存在的文件的时候,会产生OSError异常的示例
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 认识电脑的开机流程与主引导分区(MBR)
在前篇随笔中,已经谈到了CMOS与BIOS,CMOS是记录各项硬件参数(包括系统时间.设备的I/O地址.CPU的电压和频率等)且嵌入到主板上面的存储器,BIOS是一个写入到主板上的韧体(韧体是写入到硬 ...
- 51NOD 1081 子段求和
1081 子段求和 给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和. 例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} ...
- 基于nodejs环境,用npm简单搭建一个本地服务器Live-server的使用
用npm 或者cnpm进行全局安装 cnpm install -g live-server 运行后就可以直接给你虚拟一个本地服务器,而且还可以热同步 运行 live-server
- Unity3D学习笔记(十一):布料和协程
延迟函数:动态资源加载:T:Resources.Load<T>(string path);Assets - Resources,Resources是一个资源管理的工具类,预制体放在Reso ...
- ns-3 NetAnim遇到了一个问题
安装好了 NetAnim 之后,使用NS3原有例子 third.cc ,在 Simulator::run() 前面添加如下语句: AnimationInterface anim("third ...
- 字符集(编码)转换_Windows
ZC: 来自 我的项目 czgj ZC: (1).经过测试 MultiByteToWideChar(...) 返回的是 (需要的)WideChar[宽字符]的个数:(2).WideCharToMult ...
- [ios]Xcode常用快捷键
参考:http://www.linuxidc.com/Linux/2012-08/67905.htm Xcode常用快捷键 隐藏xcode command+h退出xcode command+q关闭窗口 ...
- (转)Attribute在.net编程中的应用
Attribute在.net编程中的应用(一)Attribute的基本概念 经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行.实际上在.Net中,Attribute是一 ...