Django网站开发是如何遵循软件设计MVC模式的

如果你要开发一个好的网站或网络应用,你就必需了解经典的软件开发所遵循的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,小编我就是这样的人。那么你呢?欢迎留言啊。

#helloworld/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
#helloworld/views.py

from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello world!")

欢迎订阅我的微信公众号【Python与Django大咖之路】,每日更新,成就你的人生梦想。


你可能感兴趣的:(Django,Django基础连载)