欢迎访问宙启技术站
智能推送

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方法保存用户数据。