Skip to content

用户管理系统后端开发

实战需求

点击查看实战详情

实现代码

from flask import Flask, request

app = Flask(__name__)

# 用户信息数据使用字典管理
users_db = {
    "1": {
        "name": "Alice",
        "email": "alice@hogwarts.com"
    },
    "2": {
        "name": "Bob",
        "email": "bob@hogwarts.com"
    }
}


# 获取所有用户信息
@app.route('/users')
def get_users():
    return {
        "errcode": 0,
        "errmsg": "Get all users success",
        "datas": list(users_db.values())
    }


# 添加新用户
@app.route('/users', methods=['POST'])
def add_user():
    # 获取 JSON 格式请求数据
    user_data = request.json
    # 校验请求数据中是否包含 name 与 email
    if not user_data or "name" not in user_data or "email" not in user_data:
        # 如果不包含,返回错误提示信息
        return {
            "errcode": -1,
            "errmsg": "Error user data",
        }, 400
    # 获取请求中的 name 和 email
    name = user_data.get("name")
    email = user_data.get("email")
    # 校验请求数据中的 email 是否有重复
    if email in [user["email"] for user in users_db.values()]:
        # 如果邮箱已经存在,返回错误提示信息
        return {
           "errcode": -2,
           "errmsg": "User is exist",
        }
    # 生成新用户 ID
    if len(users_db.keys()) == 0:
        new_id = 1
    else:
        new_id = max([int(id) for id in users_db.keys()]) + 1
    # 写入新用户信息
    new_user_info = {
        "name": name,
        "email": email
    }
    users_db[str(new_id)] = new_user_info
    # 返回响应
    return {
        "errcode": 0,
        "errmsg": "User added success",
        "datas": {
            new_id: new_user_info
        }
    }

# 更新用户信息
@app.route('/users', methods=['PUT'])
def update_user():
    # 获取 JSON 格式请求数据
    user_data = request.json
    # 校验请求数据中是否包含 id、name 与 email
    if not user_data or "id" not in user_data or "name" not in user_data or "email" not in user_data:
        # 如果不包含,返回错误提示信息
        return {
            "errcode": -1,
            "errmsg": "error user data",
        }, 400
    # 获取用户 ID
    user_id = user_data.get("id")
    # 判断用户 ID 是否存在
    if user_id not in users_db.keys():
        return {
           "errcode": -3,
           "errmsg": "User is not exsit",
       }
    # 获取用户更新信息
    update_user_info = {
        "name": user_data.get("name"),
        "email": user_data.get("email")
    }
    users_db[user_id] = update_user_info
    # 返回响应
    return {
        "errcode": 0,
        "errmsg": "User updated success",
        "datas": {
            user_id: update_user_info
        }
    }


# 删除用户
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    # 如果要删除的用户不存在
    if str(user_id) not in users_db:
        # 返回错误提示信息
        return {
            "errcode": -1,
            "errmsg": "User not found",
        }, 404

    # 删除用户数据
    del users_db[str(user_id)]
    return {
        "errcode": 0,
        "errmsg": "User deleted success"
    }


# 主程序入口
if __name__ == '__main__':
    app.run(debug=True, port=5009, host="0.0.0.0")