Django:Django的设计模式

Posted xiaoqichaoren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:Django的设计模式相关的知识,希望对你有一定的参考价值。

什么是MVC设计模式? 及其优点

MVC即 Model-View-Controller(模型-视图-控制器) 模式。

技术图片

- Model (模型) 简而言之即数据模型。模型不是数据本身(比如数据库里的数据),而是抽象的描述数据的构成和逻辑关系。通常模型包括了数据表的各个字段(比如人的年龄和出生日期)和相互关系(单对单,单对多关系等)。数据库里的表会根据模型的定义来生成创建。

- View (视图) 主要用于显示数据,用来展示用户可以看到的内容或提供用户可以输入或操作的界面。数据来源于哪里?当然是数据库啦。那么用户输入的数据给谁? 当然是给控制器啦。

- Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据(比如增加或更新数据表)。

技术图片

MVC最大的优点是实现了软件或网络应用开发过程中数据,业务逻辑和界面的分离,使软件开发更清晰,也是维护变得更容易。这与静态网页设计中使用html和css实现了内容和样式的分离是同一个道理。

Django中的MTV模式

Django网站开发的mtv模式: Model(模型), Template(模板)和View(视图)。它们看似与MVC设计模式不太一致,其实本质是相同的。但是Django的View和经典的View确实有非常大的不同。

- Model:与经典MVC模式下的Model差不多。也是数据模型并不是数据本身

- Template:与经典MVC模式下的View一致。决定了用户界面的外观

- Views:负责业务逻辑,并调用Model和Template。

此外还有一个路由分发器Urls,将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template。Urls+Views合起来使用,与经典MVC下的Controller更像

 

技术图片

 

Hello Django示例

/hellodjango/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path(‘index/‘, views.index, name=index),
]

/App/views.py

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

 

以上是关于Django:Django的设计模式的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

使用 Django 模板作为片段

如何在 Django 中显式重置模板片段缓存?

Django REST框架--认证和权限

JavaScript 片段在 Django 模板中不起作用

python 通过django片段很多很多