当前位置: 首页 > news >正文

PythonStyle MVC 开发框架

在 Python 中,MVC(Model - View - Controller,模型 - 视图 - 控制器)是一种常见的软件设计模式,它将应用程序分为三个主要部分,各自承担不同的职责,以提高代码的可维护性、可扩展性和可测试性。下面为你详细介绍 Python 中 MVC 模式的概念、实现示例及相关框架。

概念

  • 模型(Model):负责处理数据和业务逻辑,例如与数据库交互、进行数据计算等。
  • 视图(View):负责呈现数据给用户,例如网页、图形界面等。
  • 控制器(Controller):负责接收用户的输入,调用模型进行相应的处理,并选择合适的视图来显示结果。

简单的 MVC 实现示例

收起

python

# 模型(Model)
class Model:def __init__(self):self.data = "Hello, MVC!"def get_data(self):return self.data# 视图(View)
class View:def display(self, data):print(f"Displaying data: {data}")# 控制器(Controller)
class Controller:def __init__(self, model, view):self.model = modelself.view = viewdef update_view(self):data = self.model.get_data()self.view.display(data)# 主程序
if __name__ == "__main__":model = Model()view = View()controller = Controller(model, view)controller.update_view()

解释

  • 模型(Model 类):包含一个数据属性 data,并提供了一个方法 get_data 用于获取数据。
  • 视图(View 类):包含一个方法 display,用于将接收到的数据显示给用户。
  • 控制器(Controller 类):初始化时接收模型和视图的实例,update_view 方法调用模型的 get_data 方法获取数据,并将数据传递给视图的 display 方法进行显示。

基于 Python 的 MVC 框架

Django

Django 是一个功能强大的 Python Web 框架,虽然它采用的是 MTV(Model - Template - View)模式,但本质上与 MVC 模式类似。

  • 模型(Model):使用 Django 的 ORM(对象关系映射)来定义数据库模型。
  • 模板(Template):相当于 MVC 中的视图,用于呈现数据给用户。
  • 视图(View):相当于 MVC 中的控制器,负责处理用户请求,调用模型进行数据处理,并选择合适的模板进行渲染。

以下是一个简单的 Django 示例:

收起

python

# models.py
from django.db import modelsclass Book(models.Model):title = models.CharField(max_length=100)author = models.CharField(max_length=100)# views.py
from django.shortcuts import render
from .models import Bookdef book_list(request):books = Book.objects.all()return render(request, 'book_list.html', {'books': books})# book_list.html(模板文件)
<!DOCTYPE html>
<html>
<head><title>Book List</title>
</head>
<body><h1>Book List</h1><ul>{% for book in books %}<li>{{ book.title }} - {{ book.author }}</li>{% endfor %}</ul>
</body>
</html>
Flask

Flask 是一个轻量级的 Python Web 框架,也可以使用 MVC 模式进行开发。

收起

python

from flask import Flask, render_template
app = Flask(__name__)# 模型(模拟)
class Book:def __init__(self, title, author):self.title = titleself.author = authorbooks = [Book("Python Crash Course", "Eric Matthes"),Book("Fluent Python", "Luciano Ramalho")
]# 控制器(视图函数)
@app.route('/')
def book_list():return render_template('book_list.html', books=books)if __name__ == '__main__':app.run(debug=True)# book_list.html(视图模板)
<!DOCTYPE html>
<html>
<head><title>Book List</title>
</head>
<body><h1>Book List</h1><ul>{% for book in books %}<li>{{ book.title }} - {{ book.author }}</li>{% endfor %}</ul>
</body>
</html>

这些示例展示了如何在 Python 中使用 MVC 模式进行开发,无论是简单的脚本还是复杂的 Web 应用。

http://www.lryc.cn/news/532763.html

相关文章:

  • RTOS基础(TODO)
  • 八、Spring Boot 日志详解
  • Java实战经验分享
  • 前端控制器模式
  • Linux之安装docker
  • BUUCTF_XSS-Lab
  • springBoot使用
  • DS图(中)(19)
  • Vue Dom截图插件,截图转Base64 html2canvas
  • Unity3D仿星露谷物语开发小结1
  • graylog初体验
  • 15.PPT:文静-云计算行业发展【29】
  • 高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案
  • MFC 的 CListCtrl 控件,使用SetItemState 方法来设置选中某个 item,如何达到效果和鼠标点击一致
  • 一文读懂:TCP网络拥塞的应对策略与方案
  • 深度整理总结MySQL——子查询的工作原理
  • 20240824 美团 笔试
  • Windows图形界面(GUI)-QT-C/C++ - QT 文本编辑控件详解
  • IDEA中Resolving Maven dependencies卡着不动解决方案
  • go数据结构学习笔记
  • 【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)
  • Google地图瓦片爬虫——进阶版
  • 免费windows pdf编辑工具
  • 解锁C#数据校验:从基础到实战的进阶之路
  • Redis的通用命令
  • 设计模式六大原则和单例模式
  • Redis性能优化
  • SAM 大模型杂谈
  • openGauss 3.0 数据库在线实训课程2:学习客户端工具gsql的使用
  • B站自研的第二代视频连麦系统(上)