1.10 Flask与MVC架构

你也许会困惑为什么用来处理请求并生成响应的函数被称为“视图
函数(view function)”,其实这个命名并不合理。在Flask中,这个命名
的约定来自Werkzeug,而Werkzeug中URL匹配的实现主要参考了
Routes(一个URL匹配库),再往前追溯,Routes的实现又参考了Ruby
on Rails(http://rubyonrails.org/)。在Ruby on Rails中,术语views用来表
示MVC(Model-View-Controller,模型-视图-控制器)架构中的View。

MVC架构最初是用来设计桌面程序的,后来也被用于Web程序,应
用了这种架构的Web框架有Django、Ruby on Rails等。在MVC架构中,
程序被分为三个组件:

数据处理(Model)、用户界面(View)、交互 逻辑(Controller)

如果套用MVC架构的内容,那么Flask中视图函数
的名称其实并不严谨,使用控制器函数(Controller Function)似乎更合
适些,虽然它也附带处理用户界面。严格来说,Flask并不是MVC架构
的框架,因为它没有内置数据模型支持。为了方便表述,在本书中,使
用了app.route()装饰器的函数仍被称为视图函数,同时会使用“<函数
名>视图”(比如index视图)的形式来代指某个视图函数。

粗略归类,如果想要使用Flask来编写一个MVC架构的程序,那么
视图函数可以作为控制器(Controller),视图(View)则是我们第3章
将要学习的使用Jinja2渲染的HTML模板,而模型(Model)可以使用其
他库来实现,在第5章我们会介绍使用SQLAlchemy来创建数据库模型。

安利一门Python超级好课!
扫码下单输优惠码【****fxzs】再减5元,比官网还便宜!
1.10 Flask与MVC架构