Python中的MVC模式中的控制器(Controller)角色
发布时间:2023-12-22 22:56:28
MVC(Model-View-Controller)模式是一种常见的软件架构模式,通过分离数据模型(Model)、界面视图(View)和控制逻辑(Controller)的职责,实现了代码的高内聚和低耦合,使得代码更易于维护和扩展。
在Python中实现MVC模式,可以使用一些基于Web框架(如Django、Flask)的功能来实现,也可以自己手动实现。
下面是一个简单的使用Flask框架实现MVC模式的例子。
首先,安装Flask框架(使用pip命令):
pip install flask
创建一个名称为app.py的文件,内容如下:
from flask import Flask, render_template, request
app = Flask(__name__)
# 模型(Model)角色
class User:
def __init__(self, username):
self.username = username
def save(self):
# 实现保存用户的逻辑
pass
# 视图(View)角色
@app.route('/', methods=['GET', 'POST'])
def index():
# 处理GET请求
if request.method == 'GET':
return render_template('index.html')
# 处理POST请求
if request.method == 'POST':
username = request.form.get('username')
user = User(username)
user.save()
return '用户 {} 已保存!'.format(username)
if __name__ == '__main__':
app.run()
在同一目录下创建一个名为index.html的模板文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>MVC Example</title>
</head>
<body>
<h1>MVC Example</h1>
<form method="post" action="/">
<input type="text" name="username" placeholder="请输入用户名">
<input type="submit" value="保存">
</form>
</body>
</html>
运行app.py文件:
python app.py
打开浏览器,访问http://localhost:5000/,即可看到一个简单的页面,在输入框中输入用户名并点击保存按钮,页面将显示保存成功的提示信息。
在上面的例子中,User类充当了模型(Model)角色,负责封装用户数据和保存逻辑;index函数充当了控制器(Controller)角色,负责处理用户请求并调用相应的模型逻辑;index.html模板充当了视图(View)角色,负责展示页面给用户。
当用户在网页中输入用户名并点击保存时,控制器获取到用户输入的数据,创建一个User对象并调用其save方法保存用户数据。
