大道至简之ResetAPI

环境准备

Flask 应用程序中使用 SQLAlchemy ORM 来自动创建数据库表。SQLAlchemy 是一个流行的 Python ORM 库,可以与多种关系型数据库进行交互,包括 MySQL、PostgreSQL、SQLite 等。

#安装 SQLAlchemy 和 MySQL 驱动程序
pip install flask
pip install sqlalchemy
pip install pymysql

Reset API

创建一个名为 app.py 的 Python 文件,并添加以下代码:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# MySQL 配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@mysql:3306/python?charset=utf8mb4'
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), nullable=False)
    email = db.Column(db.String(50), nullable=False)
    password = db.Column(db.String(50), nullable=False)

    def __repr__(self):
        return f'<User {self.name}>'


# 用户注册
@app.route('/register', methods=['POST'])
def register():
    data = request.get_json()
    name = data['name']
    email = data['email']
    password = data['password']
    user = User(name=name, email=email, password=password)
    db.session.add(user)
    db.session.commit()
    return jsonify({'message': 'User created successfully!'})


# 查询用户
@app.route('/users', methods=['GET'])
def users():
    users = User.query.all()
    return jsonify([{'id': user.id, 'name': user.name, 'email': user.email, 'password': user.password} for user in users])


# 更新用户
@app.route('/update/<int:id>', methods=['PUT'])
def update(id):
    data = request.get_json()
    name = data['name']
    email = data['email']
    password = data['password']
    user = User.query.get(id)
    user.name = name
    user.email = email
    user.password = password
    db.session.commit()
    return jsonify({'message': 'User updated successfully!'})


# 删除用户
@app.route('/delete/<int:id>', methods=['DELETE'])
def delete(id):
    user = User.query.get(id)
    db.session.delete(user)
    db.session.commit()
    return jsonify({'message': 'User deleted successfully!'})


# 上下文中执行创建数据表
with app.app_context():
    db.create_all()

测试API

注册

curl -X POST -H 'Content-Type: application/json' -d '{"name":"川建国","email":"chuanpu@qq.com","password":"ilovechina"}' localhost:7002/register
#响应内容
{
  "message": "User created successfully!"
}

更新

curl -X PUT -H 'Content-Type: application/json' -d '{"name":"川建国[等待加冕]","email":"chuanpu@qq.com","password":"ilovechina"}' localhost:7002/update/4
#响应内容
{
  "message": "User updated successfully!"
}

列表

curl -i localhost:7002/users

删除

curl -X DELETE localhost:7002/delete/4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值