django devserver的简化版本仅限于sql跟踪和ajax转储。

django-query-tracer的Python项目详细描述


https://badge.fury.io/py/django-query-tracer.svghttps://travis-ci.org/morlandi/django-query-tracer.svg?branch=masterhttps://codecov.io/gh/morlandi/django-query-tracer/branch/master/graph/badge.svg

django devserver的简化版本仅限于sql跟踪和ajax转储。

动机

django devserver是一个非常好的和有用的包,但是项目不是很活跃, 与新的django版本相关的偶发问题甚至长时间不被修正 当解决方案可用作pr时。

由于对跟踪数据库查询最感兴趣,我最终决定打包一个 项目的精简版本。

屏幕截图

screenshots/screenshot_001.png

快速启动

安装django查询跟踪程序:

pip install django-query-tracer

将其添加到已安装的应用程序中

INSTALLED_APPS=(...'query_tracer',...)

添加django查询跟踪程序的中间件:

MIDDLEWARE_CLASSES=[...'query_tracer.middleware.QueryTracerMiddleware',...]

设置

querytracer_模块

Selects active modules.

Default: []

Example:

QUERYTRACER_MODULES = [
    'query_tracer.modules.sql.SQLRealTimeModule',
    'query_tracer.modules.sql.SQLSummaryModule',
    'query_tracer.modules.ajax.AjaxDumpModule',
    'query_tracer.modules.time.TimeModule',
]

querytracer_filter_out_sql

A list of regex patterns to filter out SQL queries.

Queries matching any of the given patterns will be excluded from log.

Example:

QUERYTRACER_FILTER_OUT_SQL [
    re.compile('djkombu_\w+'),  # Filter all queries related to Celery
]

SQL中的querytracer_filter_

A list of regex patterns to filter in SQL queries.

Only queries matching all patterns will be included in the log.

Example:

QUERYTRACER_FILTER_IN_SQL = [
    re.compile('sync_logs'),
    re.compile('date_created'),
]

devserver_truncate_sql

Disable SQL query truncation (used in SQLRealTimeModule) setting this to False

querytracer_ajax_content_length

Ajax responses longer than this will not be logged.

Default: 300

QueryTracer_ajax_漂亮的印花

If set, try to format ajax requests and responses as intented JSON

querytracer_sql_min_持续时间

Minimum time a query must execute to be shown, value is in MS

Default: None

开发的本地设置示例

# Install query_tracerINSTALLED_APPS.append('query_tracer')MIDDLEWARE_CLASSES+=['query_tracer.middleware.QueryTracerMiddleware',]QUERYTRACER_MODULES=('query_tracer.modules.sql.SQLRealTimeModule','query_tracer.modules.sql.SQLSummaryModule','query_tracer.modules.ajax.AjaxDumpModule','query_tracer.modules.time.TimeModule',)#QUERYTRACER_AJAX_CONTENT_LENGTH = 10000QUERYTRACER_AJAX_PRETTY_PRINT=TrueQUERYTRACER_TRUNCATE_SQL=FalseQUERYTRACER_FILTER_IN_SQL=[re.compile('sync_logs'),re.compile('date_created'),]

功能

有关可用选项,请参阅文件“query_tracer/settings.py”,并参阅 django-devserver doc供使用/

时间模块

添加了一个简单的time module模块来显示 处理每个django视图。

实用功能

查询traces.utils.trace.trace
打印文本消息或列表,可选地进行美化
查询traces.utils.trace.prettyprint\u查询
格式化并打印通用SQL查询
查询跟踪.utils.trace.prettyprint查询集
格式化并打印queryset的查询
查询traces.utils.trace.trace函数
打印函数调用,显示实际参数; 用作装饰器
从时间增量查询traces.utils.time.ms
以毫秒为单位返回timedelta

学分

此项目是的精简版本:

用于呈现此包的工具:

0.2.0

  • 修复python 3.x

0.1.5

  • 完成sqlrealtimemodule时模拟sqlsummarymodule

0.1.4

  • 添加了时间模块

0.1.3

  • 准备Python3
  • 增强的SQL摘要日志记录

0.1.2

  • 更适合生产的默认设置

0.1.1

  • Django 1.10之后需要版本比较修复来解决“django 1.10×132”上的最大递归深度问题

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

推荐PyPI第三方库


热门话题
javascript如何在jQuery函数中传递两个值,该函数获取数据并使用ajax发送到服务器?   java IOSDriver()不工作。相反,当我在测试用例通过时使用RemoteWebDriver()时,它正在打开远程会话   使用java对blob几何体进行二进制解码   java错误:Gradle:运行在Ubuntu 16.04上的Intellij 2017中的任务执行失败   java Lotus Notes邮件文档获取附件名称(和导出附件)   java如果库有副作用,这样可以吗?   java Javabat帮助:alarmClock   加载类时未初始化java静态变量   java限制htmlunit中的带宽   java Column_layout在安卓 tablelayout中不起作用   java在倒计时和打印循环时遇到问题   虚拟机我需要一个如何访问java虚拟机中的文件的帮助   java图像处理程序中的多线程