1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| from flask import Flask, request, jsonify from datetime import datetime
app = Flask(__name__)
users = [] next_id = 1
@app.route('/') def home(): return jsonify({ "message": "Welcome to Python API", "version": "1.0.0", "endpoints": { "GET /users": "获取用户列表", "GET /users/<id>": "获取单个用户", "POST /users": "创建用户", "PUT /users/<id>": "更新用户", "DELETE /users/<id>": "删除用户" } })
@app.route('/users', methods=['GET']) def get_users(): return jsonify({ "code": 200, "data": users, "total": len(users) })
@app.route('/users/<int:user_id>', methods=['GET']) def get_user(user_id): user = next((u for u in users if u['id'] == user_id), None) if user is None: return jsonify({"code": 404, "message": "用户不存在"}), 404 return jsonify({"code": 200, "data": user})
@app.route('/users', methods=['POST']) def create_user(): global next_id data = request.get_json()
if not data or not data.get('name'): return jsonify({"code": 400, "message": "缺少必要字段 name"}), 400
user = { "id": next_id, "name": data['name'], "email": data.get('email', ''), "age": data.get('age', 0), "created_at": datetime.now().isoformat() } next_id += 1 users.append(user)
return jsonify({"code": 200, "message": "创建成功", "data": user}), 201
@app.route('/users/<int:user_id>', methods=['PUT']) def update_user(user_id): user = next((u for u in users if u['id'] == user_id), None) if user is None: return jsonify({"code": 404, "message": "用户不存在"}), 404
data = request.get_json() user['name'] = data.get('name', user['name']) user['email'] = data.get('email', user['email']) user['age'] = data.get('age', user['age'])
return jsonify({"code": 200, "message": "更新成功", "data": user})
@app.route('/users/<int:user_id>', methods=['DELETE']) def delete_user(user_id): global users user = next((u for u in users if u['id'] == user_id), None) if user is None: return jsonify({"code": 404, "message": "用户不存在"}), 404
users = [u for u in users if u['id'] != user_id] return jsonify({"code": 200, "message": "删除成功"})
if __name__ == '__main__': app.run(debug=True, port=5000)
|