Flask-RESTfu数据库操作的封装和使用(三)

2023-05-06 16:10:40 浏览数 (2)

当我们使用ORM库来封装数据库操作时,增删改查操作也可以通过ORM库提供的方法来实现。以下是一个使用SQLAlchemy实现增删改查的例子:

代码语言:javascript复制
from flask import Flask, jsonify, request
from models import db, User

app = Flask(__name__)

# 添加新用户
@app.route('/users', methods=['POST'])
def create_user():
    name = request.json.get('name')
    email = request.json.get('email')
    user = User(name=name, email=email)
    db.session.add(user)
    db.session.commit()
    return jsonify(user)

# 获取所有用户
@app.route('/users', methods=['GET'])
def get_users():
    users = User.query.all()
    return jsonify(users)

# 根据ID获取用户
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
    user = User.query.get_or_404(user_id)
    return jsonify(user)

# 更新用户信息
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
    user = User.query.get_or_404(user_id)
    name = request.json.get('name')
    email = request.json.get('email')
    user.name = name
    user.email = email
    db.session.commit()
    return jsonify(user)

# 删除用户
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    user = User.query.get_or_404(user_id)
    db.session.delete(user)
    db.session.commit()
    return '', 204

在这个例子中,我们定义了四个路由函数,用于创建、读取、更新和删除用户。在创建用户的路由函数中,我们从请求的JSON数据中获取用户名称和电子邮件,创建一个新的User对象并将其添加到数据库中。在读取用户的路由函数中,我们使用User.query.all()查询所有用户,并将查询结果转换为JSON格式。在获取特定用户的路由函数中,我们使用User.query.get_or_404()方法查找用户,如果找不到用户,则返回404错误。在更新用户的路由函数中,我们使用User.query.get_or_404()方法查找用户,然后更新用户的名称和电子邮件,并将更改保存到数据库中。在删除用户的路由函数中,我们使用User.query.get_or_404()方法查找用户,然后将其从数据库中删除。

0 人点赞