用户管理系统后端开发
实战需求
点击查看实战详情
实现代码
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")