关于django的 mvc mvt 的优越感 !

如果你要开发一个好的网站或网络应用,你就必需了解经典的软件开发所遵循的MVC 设计模式。Django作为最优秀的基于Python语言的网站开发框架,当然也遵循了这种设计模式。

MVT MVC 是为了应用得到复用, 应用之间的解耦, 接口的复用 ,扩展性之分强大, 这就是django的魅力

应用之间相互没有关系,  每个应用相互独立,  和url进行绑定.灵活, 哪里用去哪里绑定, 用哪个绑定哪个.

比如在xadmin中, 就将这一特点表现的淋漓尽致.

注册应用, 可分为三种, django自带的应用模块   ,   引入注册的第三方应用  ,  自己写的应用模块

并且下载的第三方的应用 模型类直接迁移, 直接migrate


什么是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,小编我就是这样的人。那么你呢?欢迎留言啊。

  1. #helloworld/urls.py
  2. from django.urls import path
  3. from . import views
  4. urlpatterns = [
  5. path( '', views.index, name= 'index'),
  6. ]
  1. #helloworld/views.py
  2. from django.http import HttpResponse
  3. def index(request):
  4. return HttpResponse( "Hello world!")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值