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

embedded/2024/11/8 19:39:29/
http://www.w3.org/2000/svg" style="display: none;">

文章目录

    • 代码
    • 解释

代码

# flask_http_printer.pyfrom flask import Flask, request, jsonify
import jsonapp = Flask(__name__)@app.route('/printinfo', methods=['POST'])
def print_info():# 分隔符separator = "-" * 60# 获取请求头headers = request.headers# 获取 JSON bodybody = request.get_json()# 打印分隔符print(separator)# 美化打印请求头print("Headers:")print(json.dumps(dict(headers), indent=4, ensure_ascii=False))# 美化打印 JSON bodyprint("Body:")print(json.dumps(body, indent=4, ensure_ascii=False))# 再次打印分隔符以结束本次打印print(separator)return jsonify({"status": "信息已打印"}), 200if __name__ == '__main__':app.run(host='0.0.0.0', port=27751, debug=True)

https://i-blog.csdnimg.cn/direct/42e342f5317a43cdbbdd8f0c54b87cb0.png" alt="在这里插入图片描述" />

解释

这段 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:
        pip install flask-cors
        
      • 修改 Flask 应用代码以引入和使用 Flask-CORS: 更新你的 app.py 文件来引入并使用 Flask-CORS 扩展:
        from flask_cors import CORS  # 导入 CORSCORS(app)  # 启用 CORS 支持,对所有域名开放
        
        https://i-blog.csdnimg.cn/direct/cd2a57e32bae41de930db6adf21e9971.png" alt="在这里插入图片描述" />

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


http://www.ppmy.cn/embedded/135976.html

相关文章

React前端框架

一、React概述 1. 什么是React? React是由Facebook开发并维护的一个用于构建用户界面的JavaScript库。它采用组件化开发模式,允许开发者将UI拆分为独立且可复用的组件。自2013年发布以来,React迅速成为了前端开发中最受欢迎的库之一。 2. …

服装品牌零售业态融合中的创新发展:以开源 AI 智能名片 S2B2C 商城小程序为视角

摘要:本文以服装品牌零售业态融合为背景,探讨信息流优化和资金流创新的重要作用,并结合开源 AI 智能名片 S2B2C 商城小程序,分析其如何进一步推动服装品牌在零售领域的发展,提高运营效率和用户体验,实现商业…

【数据集】【YOLO】【目标检测】安全帽识别数据集 22789 张,YOLO安全帽佩戴目标检测实战训练教程!

数据集介绍 【数据集】安全帽识别数据集 22789 张,目标检测,包含YOLO/VOC格式标注。数据集中包含2种分类:{0: head, 1: helmet},分别是无安全帽和佩戴安全帽。数据集来自国内外图片网站和视频截图。检测场景为施工地工人安全帽佩…

HTB:Nibbles[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many open TCP ports are listening on Nibbles? 使用nmap对靶机TCP端口进行开放扫描 2.What is the relative path on the webserver to a blog? 使用ffuf对靶机80端口Web进行路径FUZZ 3.What content management system (CMS) …

Spark 的介绍与搭建:从理论到实践

目录 一、分布式的思想 (一)存储 (二)计算 二、Spark 简介 (一)发展历程 (二)Spark 能做什么? (三)spark 的组成部分 (四&…

CSS中综合练习(基础学校完整静态网页教程)!!

#集合三行、多行多列、百分比布局做的基础学校完整静态网页# 一、百分比布局的使用 百分比的元素示例 <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"wi…

swoole进程

Master 进程、Reactor 线程、Worker 进程、Task 进程、Manager 进程的区别与联系 Master 进程 Master 进程是一个多线程进程Reactor 线程 Reactor 线程是在 Master 进程中创建的线程 负责维护客户端 TCP 连接、处理网络 IO、处理协议、收发数据 不执行任何 PHP 代码 将 TCP …

深入解析 WinForms MVVM 模式中的事件驱动与数据驱动

前言 在传统的 WinForms 开发中&#xff0c;事件驱动模型&#xff08;Event-Driven Model&#xff09;是核心&#xff0c;它通过控件的事件&#xff08;如点击按钮、改变文本等&#xff09;触发业务逻辑。然而&#xff0c;MVVM 模式引入了数据驱动&#xff08;Data-Driven&…