Flask框架:MVC模式

问题描述

Flask实际上不是MVC框架。它是一个简约的框架,可让你在构建应用程序的方式上有很多自由,但是MVC模式非常适合Flask提供的功能

本质上,你可以编写方法并将其映射到特定的路线,例如:

@app.route("/")
def hello():
    return "Hello World!"

如你所见,那里没有视图或模型。但是,它也是基于Jinja2模板库构建的,因此在实际的应用程序中,你的方法(充当控制器)如下所示:

@app.route("/")
def hello():
    return render_template('index.html', username="John Doe")

在这里,你使用index.html模板来呈现页面。那是你的看法。

Flask没有规定任何模型。你可以使用任何所需的东西-从复杂的对象模型(通常使用诸如sqlAlchemy的ORM)到最适合你需求的东西。

解决方法

Flask框架自然支持MVC模式吗?我应该将应用程序的哪一部分视为模型,将什么视为视图,将什么视为控制器?

通常(以我的经验),Flask应用程序如下所示:

main_dir--|
          |
         app1--|
          |    |
          |  __init__.py
          |  api.py
          |  models.py
          |
         static--|
          |      |
          |    all the static stuff
          |
         app.py # with blueprints registering

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”