一个简单的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第三方库


热门话题
java无法使用Intellij Idea执行Xpath   java为什么springbootstarterdatajpa 2.5.0不能因“未找到表”而初始化数据?   google maps Geoppoint类中的java丢失精度   java fb graph对象中有哪些属性可用?   实现JNI时指针类型的java错误   java使用管理目录API将一个组织单元移动到另一个组织单元?   java局部变量gcd可能尚未初始化   java示例代码未按预期执行   使用持久性的JPA的数据库连接位于何处。xml?   java从AJAX成功函数中检索ArrayList元素   java中的持久文件验证   java编码简约消息的最佳方式   tapestry用java生成站点地图并使其公开   Java文档中使用的哈希集约定   java试图在工作线程上调用join   java有没有时间函数来记录一个方法完成一项工作所需的时间?   如何让计算器在按下等号后接受新数字?JAVA