django devserver的简化版本仅限于sql跟踪和ajax转储。
django-query-tracer的Python项目详细描述
django devserver的简化版本仅限于sql跟踪和ajax转储。
动机
django devserver是一个非常好的和有用的包,但是项目不是很活跃, 与新的django版本相关的偶发问题甚至长时间不被修正 当解决方案可用作pr时。
由于对跟踪数据库查询最感兴趣,我最终决定打包一个 项目的精简版本。
屏幕截图
快速启动
安装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”上的最大递归深度问题