Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)

文章目录

代码

rust 复制代码
# flask_http_printer.py

from flask import Flask, request, jsonify
import json

app = Flask(__name__)

@app.route('/printinfo', methods=['POST'])
def print_info():
    # 分隔符
    separator = "-" * 60

    # 获取请求头
    headers = request.headers
    # 获取 JSON body
    body = request.get_json()
    
    # 打印分隔符
    print(separator)

    # 美化打印请求头
    print("Headers:")
    print(json.dumps(dict(headers), indent=4, ensure_ascii=False))
    
    # 美化打印 JSON body
    print("Body:")
    print(json.dumps(body, indent=4, ensure_ascii=False))
    
    # 再次打印分隔符以结束本次打印
    print(separator)
    
    return jsonify({"status": "信息已打印"}), 200

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=27751, debug=True)

解释

这段 Flask 应用代码定义了一个简单的 HTTP POST 接口,其主要功能是接收 JSON 格式的数据并将相关信息打印出来,用于调试或监控目的。下面逐部分解释代码:

  1. 导入必要的库

    • from flask import Flask, request, jsonify: 导入 Flask 框架的基本组成部分(没有安装flask需要先安装:pip install flask),Flask 用于创建应用,request 用于处理传入的请求数据,jsonify 用于返回 JSON 响应。
    • import json: 导入 Python 的 json 库,用于处理 JSON 数据的美化打印。
  2. 创建 Flask 应用实例

    • app = Flask(__name__): 创建一个 Flask 应用实例。
  3. 定义路由和视图函数

    • @app.route('/printinfo', methods=['POST']): 通过装饰器定义一个路由 /printinfo,仅接受 POST 方法的请求。
    • def print_info(): 定义处理请求的视图函数。
  4. 在视图函数中打印信息

    • separator = "-" * 60: 定义一个分隔符,由 60 个连字符组成,用于在控制台输出中分隔不同的请求信息。
    • headers = request.headers: 获取请求的所有头部信息。
    • body = request.get_json(): 尝试解析请求的 JSON 主体内容。
  5. 美化并打印获取的数据

    • 打印分隔符,隔开前一个请求的打印结果。
    • 使用 json.dumps() 方法以 JSON 格式美化并打印请求头,其中 indent=4 表示每个级别缩进四个空格,ensure_ascii=False 允许直接打印非 ASCII 字符(例如中文)。
    • 以同样的方式美化并打印请求体。
    • 再次打印分隔符表示本次请求的结束。
  6. 返回响应

    • return jsonify({"status": "信息已打印"}), 200: 返回一个 JSON 格式的响应,包含状态信息,HTTP 状态码为 200,表示请求已成功处理。
  7. 运行应用

    • if __name__ == '__main__': 确保只有在直接运行这个脚本时才会执行 app.run()
    • app.run(host='0.0.0.0', port=27751, debug=True): 启动应用,监听所有可用的 IP 地址 (0.0.0.0) 上的 27751 端口。开启调试模式,以便于开发和调试过程中实时重载及提供调试信息。
  8. 支持跨域请求

    • 如果想要接口支持跨域请求,需要安装 Flask-CORS:
      • 使用 pip 安装 Flask-CORS:

        rust 复制代码
        pip install flask-cors
      • 修改 Flask 应用代码以引入和使用 Flask-CORS: 更新你的 app.py 文件来引入并使用 Flask-CORS 扩展:

        rust 复制代码
        from flask_cors import CORS  # 导入 CORS
        
        CORS(app)  # 启用 CORS 支持,对所有域名开放

这个代码用于开发和测试阶段,帮助开发者查看和验证发送到 /printinfo 端点的请求内容。调试模式开启时不应用于生产环境,因为它会显示敏感的错误信息。

相关推荐
sduwcgg7 分钟前
kaggle配置
人工智能·python·机器学习
__lost29 分钟前
Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰
python·opencv·计算机视觉
海绵波波10734 分钟前
玉米产量遥感估产系统的开发实践(持续迭代与更新)
python·flask
三思而后行,慎承诺1 小时前
tcp 和http 网络知识
网络·tcp/ip·http
JavaEdge.1 小时前
LangChain4j HTTP 客户端定制:解锁 LLM API 交互的更多可能性
网络·网络协议·http
Hy行者勇哥1 小时前
形象解释 HTTP 的四种常见请求方式及其中的区别联系
网络·网络协议·http
逢生博客1 小时前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
堕落似梦1 小时前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
坐吃山猪2 小时前
Python-Agent调用多个Server-FastAPI版本
开发语言·python·fastapi
Bruce-li__3 小时前
使用Django REST Framework快速开发API接口
python·django·sqlite