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 端点的请求内容。调试模式开启时不应用于生产环境,因为它会显示敏感的错误信息。

相关推荐
闲人编程7 分钟前
Elasticsearch搜索引擎集成指南
python·elasticsearch·搜索引擎·jenkins·索引·副本·分片
痴儿哈哈16 分钟前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
Hello.Reader17 分钟前
Flink 对接 Azure Blob Storage / ADLS Gen2:wasb:// 与 abfs://(读写、Checkpoint、插件与认证)
flink·flask·azure
花酒锄作田29 分钟前
SQLAlchemy中使用UPSERT
python·sqlalchemy
SoleMotive.30 分钟前
一个准程序员的健身日志:用算法调试我的增肌计划
python·程序员·健身·职业转型
亓才孓38 分钟前
[Properties]写配置文件前,必须初始化Properties(引用变量没执行有效对象,调用方法会报空指针错误)
开发语言·python
Bruk.Liu43 分钟前
(LangChain 实战14):基于 ChatMessageHistory 自定义实现对话记忆功能
人工智能·python·langchain·agent
大江东去浪淘尽千古风流人物1 小时前
【VLN】VLN(Vision-and-Language Navigation视觉语言导航)算法本质,范式难点及解决方向(1)
人工智能·python·算法
Swift社区1 小时前
Gunicorn 与 Uvicorn 部署 Python 后端详解
开发语言·python·gunicorn
Coinsheep1 小时前
SSTI-flask靶场搭建及通关
python·flask·ssti