from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route("/asd", methods=["POST"])
def asd_post():
    try:
        # 使用Flask内置的request对象来获取请求体中的JSON数据
        my_json = request.get_json()
        print(my_json)  # 打印接收到的JSON数据，便于调试

        # 从JSON数据中获取"name"和"age"字段的值
        get_name = my_json.get("name")
        get_age = my_json.get("age")

        # 检查"name"和"age"字段是否存在，如果任意一个不存在，则返回错误信息
        if not all([get_name, get_age]):
            return jsonify(msg="缺少参数"), 400  # 返回HTTP 400状态码表示客户端错误

        # 尝试将get_age转换为整数并增加10
        try:
            get_age = int(get_age)
        except ValueError:
            return jsonify(msg="年龄必须是整数"), 400  # 如果年龄不是有效的整数，返回错误信息

        get_age += 10  # 增加年龄
        print(get_name)  # 打印获取到的名字，方便调试
        print(get_age)  # 打印更新后的年龄，方便调试

        # 返回包含更新后的名字和年龄的JSON响应，并设置HTTP状态码为200表示成功
        return jsonify(name=get_name, age=get_age), 200

    except Exception as e:
        # 这行代码定义了一个异常处理器，它会捕获try块中抛出的所有异常（除了系统退出类异常）
        # Exception 是所有内置异常的基类，因此这里捕获的是大部分常见的运行时错误。
        print(e)  # 打印异常信息到服务器标准输出，便于调试
        # 返回一个包含错误消息的JSON响应，并设置HTTP状态码为500表示内部服务器错误
        return jsonify(msg="出错了"), 500


if __name__ == '__main__':
    # 确保这段代码仅在脚本作为主程序运行时执行，而不是被导入到其他模块中
    app.run(host="0.0.0.0")  # 启动Flask应用，监听所有网络接口，使得局域网内的其他设备也可以访问