MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序的数据模型(Model)、用户界面(View)和控制逻辑(Controller)分离,以提高代码的可维护性和可扩展性。在Web开发中,MVC模式常用于组织代码结构,使得各个部分职责明确,便于团队协作和代码管理。
假设我们有一个简单的任务列表应用,用户可以选择多个任务并将其标记为完成。我们将使用MVC模式来实现这一功能。
首先定义一个模型来表示任务:
class Task:
def __init__(self, id, title, completed=False):
self.id = id
self.title = title
self.completed = completed
创建一个HTML视图来显示任务列表和复选框:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Task List</title>
</head>
<body>
<form action="/mark_completed" method="post">
{% for task in tasks %}
<input type="checkbox" name="task_ids" value="{{ task.id }}"> {{ task.title }}<br>
{% endfor %}
<button type="submit">Mark as Completed</button>
</form>
</body>
</html>
编写控制器来处理表单提交并更新模型:
from flask import Flask, request, render_template
app = Flask(__name__)
tasks = [
Task(1, "Buy groceries"),
Task(2, "Finish report"),
Task(3, "Call mom")
]
@app.route('/')
def index():
return render_template('index.html', tasks=tasks)
@app.route('/mark_completed', methods=['POST'])
def mark_completed():
task_ids = request.form.getlist('task_ids')
for task in tasks:
if str(task.id) in task_ids:
task.completed = True
return "Tasks marked as completed!"
if __name__ == '__main__':
app.run(debug=True)
Task
类表示任务的数据结构。/
: 显示任务列表。/mark_completed
: 处理表单提交,更新选定任务的completed
状态。这种模式适用于任何需要将用户界面与数据逻辑分离的应用程序,特别是在Web开发中。它可以提高代码的可读性和可维护性,便于团队协作。
通过这种方式,你可以有效地使用MVC模式将模型数据传递给控制器,并处理用户交互。
领取专属 10元无门槛券
手把手带您无忧上云