一个简单的sqlalchemy查询分析器
sqlalchemy-easy-profile的Python项目详细描述
SqlAlchemy简易配置文件
灵感来自django-querycount, 是一个库,它钩住sqlalchemy来收集度量,将统计信息流到 控制台输出并帮助您了解应用程序中哪些地方速度慢或冗余 询问。
安装
使用pip安装软件包:
pip install sqlalchemy-easy-profile
会话探查器
分析会话挂接到sqlalchmey并捕获查询语句、持续时间信息, 以及查询参数。您还可以同时有多个活动的分析会话 相同或不同发动机上的时间。如果多个分析会话在 同一引擎,对该引擎的查询将由两个会话收集并报告 不同的记者。
您可以根据自己的喜好开始并提交分析会话。呼叫已开始
在已提交的会话上启动会话或提交将引发AssertionError
。
您还可以使用ContextManager接口进行会话分析,或者将其用作装饰器。
这只会产生在修饰函数内或内部发生分析查询的效果
管理者上下文。
如何使用begin
和commit
:
fromeasy_profileimportSessionProfilerprofiler=SessionProfiler()profiler.begin()session.query(User).filter(User.name=="Arthur Dent").first()profiler.commit()print(profiler.stats)
如何用作上下文管理器界面:
profiler=SessionProfiler()withprofiler:session.query(User).filter(User.name=="Arthur Dent").first()print(profiler.stats)
如何使用探查器作为装饰器:
profiler=SessionProfiler()classUsersResource:@profiler()defon_get(self,req,resp,**args,**kwargs):returnsession.query(User).all()
记住profiler decorator接口接受一个特殊的报告器和
如果默认情况下未定义,则将使用基本流式处理报告程序。装饰者
也接受name
和name_callback
可选参数。
wsgi集成
Easy Profiler提供了一个指定的中间件,可以打印数据库的数量 查询每个http请求,并可以作为wsgi服务器中间件应用。所以你 可以轻松地将easy profiler集成到任何wsgi应用程序中。
如何与烧瓶应用程序集成:
fromflaskimportFlaskfromeasy_profileimportEasyProfileMiddlewareapp=Flask(__name__)app.wsgi_app=EasyProfileMiddleware(app.wsgi_app)
如何与Falcon应用程序集成:
importfalconfromeasy_profileimportEasyProfileMiddlewareapi=application=falcon.API()application=EasyProfileMiddleware(application)
测试
运行测试:
python setup.py test
或者使用tox
在所有测试环境中运行。
许可证
这段代码是根据麻省理工学院的许可条款发布的。
更改
完整的变更日志保存在CAHNGELOG文件中。
贡献
sqlalchemy easy profile是一个开源项目,贡献如下 欢迎!查看Issues 页面查看是否已提到您的贡献想法,并感觉 自由提出问题或提交请求。