python 设计模式(十四) 模型-视图-控制器模式(Model-View-Controller pattern)

本文介绍了模型-视图-控制器(MVC)模式,强调了关注点分离原则在软件设计中的重要性。MVC模式将应用分为模型、视图和控制器三部分,其中模型管理业务逻辑和数据,视图负责展示,控制器协调两者通信。Django框架虽然使用了不同的命名,但同样遵循MVC思想。MVC模式有利于前后端分离,方便维护和扩展。文中提供了一个简单的MVC模式实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节选自《精通Python设计模式》【荷】Sakis Kasampalis

    关注点分离(Separation of Concerns, SoC)原则是软件工程相关的设计原则之一,SoC原则背后的思想是将一个应用切分为不同的部分,每个部分解决一个单独的关注点。分层设计中的层次(数据访问层,业务逻辑层和表示层等)即是关注点的例子。使用SoC原则能简化软件应用的开发和维护

    模型-视图-控制器(Model-view-Controller,MVC)模式是应用到面向对象编程的Soc原则。模式的名称来源于用来切分软件的三个主要部分。即模型部分,视图部分和控制器部分。MVC模式被认为是一种架构模式而不是一种设计模式。

    模型部分是核心部分,代表着应用的信息本源,包含和管理业务逻辑、数据、状态以及应用的规则。视图是模型的可视化表现。视图的例子有,计算机图形用户界面、计算机终端的文本输出、智能手机的应用图形界面、Pdf文档等。视图只是展示数据,并不处理数据。控制器控制模型和视图之间的连接。模型和视图的所有通信都通过控制器进行:

大致过程如下

1 用户通过单击某个按钮触发一个视图

2 视图把用户操作告知控制器

3 控制器处理用户输入,并与模型交互

4 模型执行所有必要的校验和状态改变,并通知控制器该做什么

5 控制器按照模型给出的指示,指导视图适当地进行更新和显示

Django是一个MVC框架,但它使用了不同命名方式。Django中控制器被称为视图。视图被称为模板。模型的称呼没变。因此Django中的框架变为模型-模板-视图框架。Django的设计者称:视图是描述哪些数据对用户可见。因此,Django把它对应的一个特定url的python回调函数称为视图。Django中的模板用于把内容和展示分离&#x

Python中,特别是用于Web开发的框架如Flask或Django,安装视图通常涉及到安装对应的库和理解其基本用法。以下是通过Flask和Django两个例子来说明如何安装和设置视图: **Flask示例**: 1. 首先,确保你已经安装了Python和pip(Python包管理器)。如果尚未安装,访问 https://www.python.org/downloads/ 下载并安装最新版本。 2. 安装Flask库: ``` pip install Flask ``` 3. 创建一个新的Python文件(例如app.py),然后添加一个简单的视图函数: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 4. 运行应用: ``` python app.py ``` 现在,当你访问`http://localhost:5000/`时,应该能看到"Hello, World!"。 **Django示例**: 1. 同样,安装Python和pip,然后安装Django: ``` pip install Django ``` 2. 新建一个Django项目: ``` django-admin startproject myproject cd myproject ``` 3. 在项目的`myproject/app_name/views.py`中创建视图函数: ```python from django.http import HttpResponse from . import views def index(request): return HttpResponse("Hello, World!") ``` 4. 更新`myproject/urls.py`,引入并包含你的视图: ```python from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] ``` 5. 重启开发服务器: ``` python manage.py runserver ``` 6. 访问`http://127.0.0.1:8000/`查看结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值