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 # 1、创建Flask的服务对象 app = Flask('Hi,Flask!') # 2、声明请求资源(动态) @app.route('/bank', methods=['GET', 'POST']) def addBank(): data = { 'title': '绑定银行卡', 'error_message': '卡号和银行名称不能为空' } # 渲染模板 html = render_template('bank_edit.html', **data) # 将数据返回给客户端 return html #3、启动服务 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内容才是静态资源