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基础 time.localtime 当前系统的年月日 时分秒
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 关于 Local feature 和 Global feature 的组合
关于 Local feature 和 Global feature 的组合 1.全局上下文建模:
- json.dump()和json.dmups()的区别
在python中支持json合适的数据是通过json模块实现的. 在序列化json数据的时候遇到两个形状很像的函数,dump()和dumps().主要说说他们的区别 先看看官方文档的说明:https: ...
- python profile性能分析
#! /usr/bin/env python # encoding=utf8 import profile def func1(): for i in range(1000): pass def fu ...
- win10 操作系统 修改桌面图标
桌面右击出现菜单后,点击个性化: 点击左边菜单的主题,点击桌面图标设置,在新窗口中选择需要显示的图标接口 details please check following screenshot
- PHP获取固定概率
public static function getFixRand($weight) { if ((int)$weight < 0 || (int)$weight > 100) { ret ...
- Python day12部分内置函数的常见方法
#内置函数 print(abs(-1))#绝对值 ']))#判断list的真假,都真则真,有一个假也是假 print(any(''))#有一个真就真,全假则假 print(bin(3))#十进制转换二 ...
- Qt5_加载DLL
1.QLibrary 加载普通 DLL //写清楚库的路径,如果放在当前工程的目录下,路径为./Oracle.so QLibrary *libOCI = new QLibrary("F:\\ ...
- Codeforces 38B - Chess
38B - Chess 思路:懂点象棋的规则就可以,看看哪些点可以放马. 代码: #include<bits/stdc++.h> using namespace std; #define ...
- android--------ExpandableListView的使用多级列表
多级列表ExpandableListView 扩展列表能够显示一个指示在每项显示项的当前状态(状态通常是一个扩展的组,组的孩子,或倒塌,最后一个孩子).使用setchildindicator(draw ...