一个简单的sqlalchemy查询分析器

sqlalchemy-easy-profile的Python项目详细描述


SqlAlchemy简易配置文件

Build StatusimagecodecovLicense

灵感来自django-querycount, 是一个库,它钩住sqlalchemy来收集度量,将统计信息流到 控制台输出并帮助您了解应用程序中哪些地方速度慢或冗余 询问。

report example

安装

使用pip安装软件包:

pip install sqlalchemy-easy-profile

会话探查器

分析会话挂接到sqlalchmey并捕获查询语句、持续时间信息, 以及查询参数。您还可以同时有多个活动的分析会话 相同或不同发动机上的时间。如果多个分析会话在 同一引擎,对该引擎的查询将由两个会话收集并报告 不同的记者。

您可以根据自己的喜好开始并提交分析会话。呼叫已开始 在已提交的会话上启动会话或提交将引发AssertionError。 您还可以使用ContextManager接口进行会话分析,或者将其用作装饰器。 这只会产生在修饰函数内或内部发生分析查询的效果 管理者上下文。

如何使用begincommit

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接口接受一个特殊的报告器和 如果默认情况下未定义,则将使用基本流式处理报告程序。装饰者 也接受namename_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 页面查看是否已提到您的贡献想法,并感觉 自由提出问题或提交请求。

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

推荐PyPI第三方库


热门话题
Split方法在Java数组中创建空元素   多线程java多线程读取。。请帮助我,我对java非常陌生:(   调整大小时,java jpanel与jdesktop窗格不匹配   java JDBC/MYSQL通信链路故障(ECLIPSE/ANDROID)   java Android应用程序登录和注册错误   同一行上多次字符串之间的Java正则表达式   java为什么Spring在混淆之后看不到我的@Resource注释对象?   java Javafx:解析命名空间中不存在的onAction//eventHandler时出错   Java中的“原始接口方法”是什么?   apache如何在使用httpClent java上传时取得进展   java如何设计我的setter方法?   java可以在使用Iterable迭代元素时更改元素。forEach(消费者)?   java组织。openqa。硒。ElementNotVisibleException   使用JAXRS和OData的java REST服务?