Flask MVC

Flask是一个轻量级的Python Web框架,它遵循MVC(ModelViewController)设计模式,MVC是一种将应用程序的数据、业务逻辑和用户界面分离的方法,使得代码更加模块化、可维护和可扩展,下面是关于Flask MVC的详细介绍:

Flask MVC
(图片来源网络,侵删)

1、Model(模型):模型负责处理数据和业务逻辑,在Flask中,可以使用SQLAlchemy等ORM(对象关系映射)库来处理数据库操作。

2、View(视图):视图负责展示数据给用户,在Flask中,可以使用模板引擎(如Jinja2)来生成HTML页面。

3、Controller(控制器):控制器负责接收用户请求,处理业务逻辑,并返回响应给用户,在Flask中,可以使用路由装饰器来定义URL与视图函数之间的映射关系。

以下是一个简单的Flask MVC示例:

1、安装Flask和Jinja2:

pip install Flask Jinja2

2、创建一个名为app.py的文件,编写以下代码:

from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    def __repr__(self):
        return f'<User {self.username}>'
@app.route('/')
def index():
    users = User.query.all()
    return render_template('index.html', users=users)
@app.route('/add', methods=['POST'])
def add_user():
    username = request.form['username']
    email = request.form['email']
    user = User(username=username, email=email)
    db.session.add(user)
    db.session.commit()
    return redirect(url_for('index'))

3、创建一个名为templates的文件夹,并在其中创建一个名为index.html的文件,编写以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF8">
    <meta name="viewport" content="width=devicewidth, initialscale=1.0">
    <title>用户列表</title>
</head>
<body>
    <h1>用户列表</h1>
    <table>
        <tr>
            <th>ID</th>
            <th>用户名</th>
            <th>邮箱</th>
        </tr>
        {% for user in users %}
        <tr>
            <td>{{ user.id }}</td>
            <td>{{ user.username }}</td>
            <td>{{ user.email }}</td>
        </tr>
        {% endfor %}
    </table>
    <a href="{{ url_for('add') }}">添加用户</a>
</body>
</html>

4、运行app.py文件:

python app.py

5、打开浏览器,访问http://127.0.0.1:5000/,查看用户列表页面,点击“添加用户”链接,输入用户名和邮箱,提交表单,即可看到新用户添加到用户列表中。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/479285.html

(0)
未希新媒体运营
上一篇 2024-04-15 15:10
下一篇 2024-04-15 15:11

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入