知识点回顾:字典作为参数的调用:
data = {'title': '登录页面', 'err_msg': '出错信息提示'}
'{err_msg} {title}'.format(**data)
字典作为参数,**打开字典,分别按key提取
MVC
MTV
直接在视图处理函数中加return返回网页内容太繁琐,不利于视图和控制分离
因此flask架构,创建一个template目录存储模板,如bank_edit.html文件
bank_edit.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ title }}的页面</title>
</head>
<body>
<h2>{{ title }}</h2>
<form>
<label>银行名称</label>
<input name="name"><br>
<label>卡号</label>
<input name="card_num"><br>
<button>提交</button>
</form>
<div class="error">
<span>{{ err_msg }}</span>
</div>
</body>
</html>
接下来,加载模板数据,注意字典数据使用
@app.route('/addbank', methods=['GET', 'POSt'])
def addBank():
# 加载数据(Model交互操作)
data = {
'title': '绑定银行',
'err_msg': '出错'
}
# 渲染模板
html = render_template('bank_edit.html', **data)
return html
也可以如下:注意字典数据正确使用方法
from flask import Flask from flask import request, render_template app = Flask(__name__) # 一个路由要与一个函数对应 @app.route('/', methods=['GET', 'POST']) def index(): return ''' <h1>首页</h1> ''' #模板目录可以后添加,一般为templates,通过project structure设置模板路径 #快速换出上下文菜单ALT+ENTER @app.route('/login', methods=['GET', 'POST']) def login(): data = {'title': '登录页面', 'err_msg': '出错信息提示'} html = render_template('flaskdemo.html', **data) #raise Exception('有异常!!!') return html if __name__ == '__main__': app.run(host='0.0.0.0', port=18000, debug=True,#开启调试模式 threaded=True,#开启多线程模式 processes=1#4个进程,默认只有一个进程,注意:theaded、processes不能同时开 )