没有项目描述

ddrr的Python项目详细描述


django调试请求和响应(ddrr)

从开发输出中获取更多信息!打印请求和响应 标题,正文(漂亮的打印),等高度可定制!

  • 完整的请求头
  • 整个请求正文
  • 漂亮的打印选项
  • 彩色输出
  • 超级简单的设置
  • 没有额外的依赖关系

ddrr还可以用于常规日志记录,您可以使用自己的一些配置。

安装

$ pip install ddrr
# in settings.pyINSTALLED_APPS=(# ..."ddrr",)importddrrddrr.quick_setup()

完成!当您运行runserver时,您将获得整个http请求和 响应,包括标题和正文。

如果不喜欢默认输出格式,请继续阅读…

定制

ddrr.quick_setup接受以下可选参数:

  • enable_requests-(默认值:true)启用请求日志记录。
  • enable_responses-(默认值:true)启用响应日志记录。
  • level(默认值:debug)日志消息的级别。
  • pretty(默认值:false)启用主体的漂亮打印。
  • request_template-(默认:无)请求模板字符串
  • request_template_name-(默认:无)请求模板名称
  • response_template-(默认:无)响应模板字符串
  • response_template_name-(默认:无)响应模板名称
  • limit_body-(默认:无)限制请求和响应正文长度
  • colors-(默认值:true)如果终端支持,则启用颜色支持

更改输出格式

您可以将request_templaterequest_template_name传递给quick_setup 为请求日志定义不同的输出格式。反应也是一样, 使用response_templateresponse_template_name

这些模板是普通的django模板,通过必要的 模板上下文,可以访问任何您感兴趣的内容。

  • 请求模板上下文:
    • ddrr.body-请求正文
    • ddrr.content_type-请求内容类型
    • ddrr.formatter-格式化程序
    • ddrr.headers-头字段和值的映射
    • ddrr.method-请求方法
    • ddrr.path-请求路径
    • ddrr.query_params-查询参数
    • ddrr.query_string-查询字符串
    • ddrr.record-实际的日志记录对象
    • ddrr.request-实际的请求对象
  • 响应模板上下文:
    • ddrr.content-响应内容
    • ddrr.content_type-响应内容类型
    • ddrr.formatter-格式化程序
    • ddrr.headers-头字段和值的映射
    • ddrr.reason_phrase-响应原因短语
    • ddrr.record-实际的日志记录对象
    • ddrr.response-实际的响应对象
    • ddrr.status_code-响应状态代码

例如,这将记录每个请求的方法、路径和主体 作为每个响应的状态码、原因短语和内容:

ddrr.quick_setup(request_template="{{ ddrr.method }} {{ ddrr.path }}\n""{{ ddrr.body }}",response_template="{{ ddrr.status_code }} {{ ddrr.reason_phrase }}\n""{{ ddrr.content }}",)

漂亮的打印

默认情况下,“漂亮打印”被禁用。将pretty=True传递给quick_setup 启用它。

漂亮的json打印不需要外部依赖。

XML的漂亮打印默认使用minidom,不需要任何额外的 附属国。如果你想用lxml代替,这在 打印XML很漂亮,您可以使用pip install ddrr[xml]安装它。

如何在内部工作

中间件ddrr.middleware.DebugRequestsResponses发送整个 请求对象作为消息发送到ddrr-request-logger。这个记录器已经 配置为使用ddrr.formatters.DjangoTemplateRequestFormatter 内部使用django的内置模板引擎将请求格式化为 人类可读的形式。默认情况下,这会显示在控制台输出中,但是 可以轻松地将其配置为将其记录到文件、ElasticSearch或其他任何内容。

类似项目

发展和贡献

公关总是受欢迎的!

对于DDRR上的黑客攻击,请确保您熟悉:

安装依赖项并设置预提交挂钩。

$ poetry install
$ pre-commit install

除其他外,预提交挂钩将在代码基上运行flake8并 黑色以确保所有文件的代码样式一致。退房 ^{}了解详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
“java.lang.TypeNotPresentException:键入org.hibernate.SessionFactory不存在”   java如何添加两个内容为number的字符数组?   java变量未初始化我必须设置一个变量,而不是仅仅在if语句中添加它吗?   在Java中,main和constructor可以一起在一个类中吗   安卓在java中拖动多个按钮视图   字符串读写文件Java空空间   java在使用Moshi JsonAdapter反序列化时丢失字段值。工厂   如何在Java中使用for循环和扫描程序添加数组   在java andriod中使用notifyDataSetChanged()后,安卓 Arraylist未重新填充   java枚举类型中的方法能否更改枚举实例的状态?   java pbkdf2盐渍哈希密码验证   java Maven jgit JDWP传输错误   基于浏览web内容的java用户行为分析   java为什么我在STS中遇到编译错误   java Spring引导REST获取HTTPConnectionURL的参数   在JFrame中使用JPanel的java无法正确调整大小或移动   java泛型遗留兼容性问题   java将动态表单上的类对象传递给意图对象