如果你要开发一个好的网站或网络应用,你就必需了解经典的软件开发所遵循的MVC 设计模式。Django作为最优秀的基于Python语言的网站开发框架,当然也遵循了这种设计模式。小编我就尝试用比较通俗点的语言给你解释下什么是MVC框架以及Django网站开发是如何遵循这种软件开发设计模式的吧。
什么是MVC模式? 它有什么优点?
MVC即 Model-View-Controller(模型-视图-控制器) 模式。
Model (模型) 简而言之即数据模型。模型不是数据本身(比如数据库里的数据),而是抽象的描述数据的构成和逻辑关系。通常模型包括了数据表的各个字段(比如人的年龄和出生日期)和相互关系(单对单,单对多关系等)。数据库里的表会根据模型的定义来生成创建。
View (视图) 主要用于显示数据,用来展示用户可以看到的内容或提供用户可以输入或操作的界面。数据来源于哪里?当然是数据库啦。那么用户输入的数据给谁? 当然是给控制器啦。
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据(比如增加或更新数据表)。
如果把MVC比喻成一个粽子,那么View就是最外面一层的绿色玉米叶,是吃货们可以直接看到的。Controller就是中间那层熟糯米,而粽子的核心自然是最里面那一层的肉馅Model模型了。现在大家知道中学和大学数学建模的重要性了吧?
MVC最大的优点是实现了软件或网络应用开发过程中数据,业务逻辑和界面的分离,使软件开发更清晰,也是维护变得更容易。这与静态网页设计中使用html和css实现了内容和样式的分离是同一个道理。
Django网站开发是如何遵循MVC设计模式的?
Django网站开发全靠四件套: Model(模型), URL(链接), View(视图) 和Template(模板)。它们看似与MVC设计模式不太一致,其实本质是相同的。但是Django的View和经典的View确实有非常大的不同。Django四件套与经典的MVC对应关系如下。
Django Model(模型): 这个与经典MVC模式下的Model差不多。
Django URL + View(视图): 这两个合起来与经典MVC下的Controller更像。原因在于Django的URL和View合起来才能向Template传递正确的数据。用户输入提供的数据也需要Django的View来处理。
Django Template(模板): 这个与经典MVC模式下的View一致。Django模板用来呈现Django view传来的数据,也决定了用户界面的外观。Template里面也包含了表单,可以用来搜集用户的输入。
Django网站开发应先写URL还是先写View?
使用Django开发网站的第一步绝对是定义模型(Model), 如果写个不需要使用数据库的小应用,也完全可以不定义模型,直接写URL和View, 比如下面打印Hello world的案例。那么问题来了,我们一般该先写URL还是View呢?答案是两者都可以,完全取决于个人偏好。一般来说喜欢从上至下思考的人都喜欢先写URL,小编我就是这样的人。那么你呢?欢迎留言啊。
领取专属 10元无门槛券
私享最新 技术干货