I15*_*159 14 python model-view-controller design-patterns flask
Flask框架自然是否支持MVC模式?我应该将应用程序的哪些部分视为模型,什么是视图?什么是控制器?
通常(根据我的经验)Flask应用程序看起来像这样:
main_dir--|
|
app1--|
| |
| __init__.py
| api.py
| models.py
|
static--|
| |
| all the static stuff
|
app.py # with blueprints registering
Run Code Online (Sandbox Code Playgroud)
Zde*_*vic 12
Flask实际上不是MVC框架.它是一个简约的框架,为您构建应用程序提供了很大的自由,但MVC模式非常适合Flask提供的功能.
基本上你编写你的方法并将它们映射到特定的路线,例如:
@app.route("/")
def hello():
return "Hello World!"
Run Code Online (Sandbox Code Playgroud)
正如您所见,那里没有视图或模型.但是,它也是建立在Jinja2模板库之上的,所以在一个真实的应用程序中,你的方法(充当控制器)看起来像:
@app.route("/")
def hello():
return render_template('index.html', username="John Doe")
Run Code Online (Sandbox Code Playgroud)
在这里,您使用index.html模板来呈现页面.那是你现在的观点.
烧瓶没有规定任何型号.您可以使用任何您想要的东西 - 从复杂的对象模型(通常使用一些ORM,如SQLAlchemy)到最符合您需求的东西.
你有它:MVC