Python Flask MVC思想(视图-模型-控制器):减少视图和数据的耦合性
1、客户端发起请求后,通过路由找到视图处理函数 2、路由(请求资源)和视图处理函数(Controller),事先在app中声明中 3、在视图的处理函数中根据业务需求,加载数据(Model)并渲染到模板(View) 4、将渲染之后的模板数据返回给客户端
Python Flask MTV思想
MTV设计思想,基于MVC的:
- M-Model:模型
- T-Template:模板
- V-View:处理函数
一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据(渲染)填充到模板中空格中,最后返回网页给用户
from flask import Flask, render_template
app = Flask('Hi,Flask!')
@app.route('/bank', methods=['GET', 'POST'])
def addBank():
data = {
'title': '绑定银行卡',
'error_message': '卡号和银行名称不能为空'
}
html = render_template('bank_edit.html', **data)
return html
app.run(host="localhost", port=5000)
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="bank_name"/><br>
<label>卡号</label>
<input name="card_num"/><br>
<button>提交</button>
</form>
<div class="error">
<span>{{error_message}}</span>
</div>
</body>
</html>
以上html文件不是静态的网页文件,而是一个动态的模板文件,页面中存在动态显示的变量,需要在视图函数中,指定渲染模板,渲染之后的html内容才是静态资源
|