21 Flask CRUD 操作实战指南

21 Flask CRUD 操作实战指南

在本节中,我们将通过一个具体的案例来学习如何在 Flask 中实现基本的 CRUD(创建、读取、更新、删除)操作。我们将以一个简单的用户管理系统为例。

创建 Flask 项目

首先,确保你已经安装了 Flask,可以使用以下命令安装:

1
pip install Flask Flask-SQLAlchemy

接下来,创建一个新的 Flask 项目目录,并在该目录下创建一个 app.py 文件。

1
2
3
mkdir flask_crud
cd flask_crud
touch app.py

app.py 中写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
age = db.Column(db.Integer, nullable=False)

db.create_all()

创建用户(Create)

接下来,我们添加一个路由来处理用户的创建。通过 POST 请求可以创建新的用户。

1
2
3
4
5
6
7
@app.route('/users', methods=['POST'])
def create_user():
data = request.json
new_user = User(name=data['name'], age=data['age'])
db.session.add(new_user)
db.session.commit()
return jsonify({'id': new_user.id, 'name': new_user.name, 'age': new_user.age}), 201

测试创建用户

使用 curl 或 Postman 测试创建用户的功能:

1
curl -X POST http://127.0.0.1:5000/users -H "Content-Type: application/json" -d '{"name": "Alice", "age": 25}'

读取用户(Read)

现在,添加一个路由来获取用户信息。我们可以用 GET 请求来读取所有用户的信息。

1
2
3
4
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
return jsonify([{'id': user.id, 'name': user.name, 'age': user.age} for user in users]), 200

测试读取用户

使用以下命令获取所有用户:

1
curl http://127.0.0.1:5000/users

更新用户(Update)

要更新用户的信息,我们需要添加一个新的路由,支持 PUT 请求。

1
2
3
4
5
6
7
8
@app.route('/users/<int:id>', methods=['PUT'])
def update_user(id):
data = request.json
user = User.query.get_or_404(id)
user.name = data['name']
user.age = data['age']
db.session.commit()
return jsonify({'id': user.id, 'name': user.name, 'age': user.age}), 200

测试更新用户

你可以使用以下命令更新用户的信息:

1
curl -X PUT http://127.0.0.1:5000/users/1 -H "Content-Type: application/json" -d '{"name": "Alice Updated", "age": 26}'

删除用户(Delete)

最后,我们需要一个路由来处理用户的删除。通过 DELETE 请求可以删除特定的用户。

1
2
3
4
5
6
@app.route('/users/<int:id>', methods=['DELETE'])
def delete_user(id):
user = User.query.get_or_404(id)
db.session.delete(user)
db.session.commit()
return jsonify({'message': 'User deleted'}), 204

测试删除用户

使用以下命令来删除用户:

1
curl -X DELETE http://127.0.0.1:5000/users/1

启动 Flask 应用

在文件的末尾添加以下代码以启动 Flask 应用:

1
2
if __name__ == '__main__':
app.run(debug=True)

总结

在本节中,我们创建了一个简单的 Flask 应用,成功实现了 CRUD 操作。通过这个案例,我们学习如何使用 Flask 提供的路由,处理请求和与 SQLite 数据库进行交互。你可以根据需求扩展这个应用,增加更多功能和复杂性。

21 Flask CRUD 操作实战指南

https://zglg.work/flask/21/

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议