admin 管理员组

文章数量: 887042


2024年1月12日发(作者:c语言题库app哪个好)

Python设计模式——MVC模式

模型 -

视图 -

控制器模式

MVC 不仅仅是一种实现用户界面的软件模式,同时也是一种易于修改和维护的架构。通常 MVC 模式将应用程序分为 3 个基本部分:模型(Model)、视图(View)和控制器(Controller)。这 3 个部分相互关联,有助于将信息的处理与信息的呈现分开。

MVC 模式的工作机制为:模型提供数据和业务逻辑(如何存储和查询信息),视图负责数据的展示(如何呈现),而控制器则是两者之间的粘合剂,根据用户要求的呈现方式协调模型和视图。视图和控制器依赖于模型,但模型是可以独立工作的。

UML

模型:定义针对数据的所有操作(如创建、修改和删除等),并提供与数据使用有关的方法

视图:提供相应的方法,帮助根据上下文和应用程序的需要构建 Web 或

GUI 界面

控制器:从请求接收数据,并将其发送到系统的其他部分。需要提供用于路由请求的方法

MVC 模式的主要意图:

将数据和数据的展示隔离开

使类的维护和实现更加简单

灵活地改变数据的存储和显示方式,两者相互独立

模型是应用程序的基石,提供客户端请求的数据,必须在多个操作中保持一致。 视图用来将数据展示在接口上供用户查看。可以独立开发,但不应包含复杂的逻辑;需要足够灵活,适应多种平台;应避免与数据库直接交互。 控制器应该作为模型和视图之间的粘合剂,要尽可能薄;不应该进行数据库调用或参与数据的展示。

示例代码

class Model: services = { 'email': {'number': 1000, 'price': 2}, 'sms': {'number': 1000, 'price': 10}, 'voice': {'number': 1000, 'price': 15} } class View: def

list_services(self, services): for svc in services: print(svc, ' ') def list_pricing(self, services): for svc in services: print("For", es[svc]['number'], svc, 'message you pay $', es[svc]['price']) class Controller: def __init__(self): = Model( = View( def get_services(self): services = ( return (_services(services)) def get_pricing(self): services = ( return (_pricing(services)) if __name__ == '__main__': controller

= Controller( print("Services Provided:") _services( print("Pricing for Services:") _pricing( # => Services Provided: # => email # => sms # => voice # => Pricing for Services: # => For 1000 email message you pay $ 2 #

=> For 1000 sms message you pay $ 10 # => For 1000 voice message you pay $ 15

目录结构:

mvc ├── └── templates ├── ├── └──

源代码:

templates/ 源代码:

{% block header %}{% end%}

{% block body %}{% end %}

templates/ 源代码:

{% extends '' %} ToDo {% block body %}

Your Tasks

{% for todo in todos %} {% if todo[2] %} {% else %} {% end %} {% if todo[2] %} {% else %} {% end %} {% end %}
Id Name Status Update Delete
{{ todo[0] }} {{ todo[1] }}OpenClosedClose TaskOpen TaskX
{% end %}

templates/ 源代码:

{% extends '' %} ToDo {% block body %}

Add Task to your List

{% end %}

运行 python 命令,浏览 ,效果如下:

tasks

add task

PS:需安装 tornado 模块(pip install tornado)


本文标签: 模型 数据 视图 提供 模式