ython + Flask + SQLAlchemy 实现一个后端接口,实现一张表的 CRUD(增删改查)
时间: 2023-06-19 08:05:39 浏览: 62
好的,下面是实现步骤:
1. 安装必要的库
```python
pip install Flask
pip install SQLAlchemy
```
2. 创建 Flask 应用
```python
from flask import Flask
app = Flask(__name__)
```
3. 配置数据库
```python
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
```
4. 创建数据模型
```python
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
email = db.Column(db.String(50))
password = db.Column(db.String(50))
```
5. 创建 CRUD 接口
- 查询所有用户
```python
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
return {'users': [{'id': user.id, 'name': user.name, 'email': user.email} for user in users]}
```
- 查询单个用户
```python
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = User.query.get(user_id)
return {'user': {'id': user.id, 'name': user.name, 'email': user.email}}
```
- 添加用户
```python
@app.route('/users', methods=['POST'])
def add_user():
user_data = request.json
user = User(name=user_data['name'], email=user_data['email'], password=user_data['password'])
db.session.add(user)
db.session.commit()
return {'message': 'User added successfully'}
```
- 更新用户
```python
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
user_data = request.json
user = User.query.get(user_id)
user.name = user_data['name']
user.email = user_data['email']
user.password = user_data['password']
db.session.commit()
return {'message': 'User updated successfully'}
```
- 删除用户
```python
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
user = User.query.get(user_id)
db.session.delete(user)
db.session.commit()
return {'message': 'User deleted successfully'}
```
6. 运行应用
```python
if __name__ == '__main__':
app.run(debug=True)
```
完整代码如下:
```python
from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
email = db.Column(db.String(50))
password = db.Column(db.String(50))
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
return {'users': [{'id': user.id, 'name': user.name, 'email': user.email} for user in users]}
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = User.query.get(user_id)
return {'user': {'id': user.id, 'name': user.name, 'email': user.email}}
@app.route('/users', methods=['POST'])
def add_user():
user_data = request.json
user = User(name=user_data['name'], email=user_data['email'], password=user_data['password'])
db.session.add(user)
db.session.commit()
return {'message': 'User added successfully'}
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
user_data = request.json
user = User.query.get(user_id)
user.name = user_data['name']
user.email = user_data['email']
user.password = user_data['password']
db.session.commit()
return {'message': 'User updated successfully'}
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
user = User.query.get(user_id)
db.session.delete(user)
db.session.commit()
return {'message': 'User deleted successfully'}
if __name__ == '__main__':
app.run(debug=True)
```
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)