• 在创建引擎时,将echo参数配置成True,会输出sql执行语句记录。默认False

    create_engine(statsticConf.sqlalchemy_mysql,connect_args={"charset": "utf8mb4"},echo = True)
    #输出如下:

    2018-12-11 15:34:31,814 INFO sqlalchemy.engine.base.Engine SELECT count(`MT4_TRADES`.`TICKET`) AS deal_close
    FROM `MT4_TRADES`
    WHERE `MT4_TRADES`.`LOGIN` = %(LOGIN_1)s AND `MT4_TRADES`.`CMD` IN (%(CMD_1)s, %(CMD_2)s) AND `MT4_TRADES`.`CLOSE_TIME` >= %(CLOSE_TIME_1)s AND `MT4_TRADES`.`CLOSE_TIME` < %(CLOSE_TIME_2)s
    2018-12-11 15:34:31,814 INFO sqlalchemy.engine.base.Engine {'LOGIN_1': 2021400, 'CMD_1': 0, 'CMD_2': 1, 'CLOSE_TIME_1': '1970-01-01 00:00:00.1', 'CLOSE_TIME_2': '2018-10-26 09:47:00.0'}

    我们需要复制sql到数据库验证有效性。从结果来看,并不能直接复制到数据库执行,变量值需要手动修改代入。

  • 改进。官方有提供compile方法。 https://docs.sqlalchemy.org/en/latest/core/internals.html?highlight=statement%20compile#sqlalchemy.engine.interfaces.Compiled
  • t_tradesTable = session.query(sqlQuery.label(quotaValue)).filter( sqlFilter )
    
    print(t_tradesTable.statement.compile(compile_kwargs={'literal_binds': True}))
    

    SELECT count(`MT4_TRADES`.`TICKET`) AS deal_close
    FROM `MT4_TRADES`
    WHERE `MT4_TRADES`.`LOGIN` = 2021400 AND `MT4_TRADES`.`CMD` IN (0, 1) AND `MT4_TRADES`.`CLOSE_TIME` >= '1970-01-01 00:00:00.1' AND `MT4_TRADES`.`CLOSE_TIME` < '2018-10-26 09:47:00.0'

      

sqlachemy 原生sql输出的更多相关文章

  1. entityframework学习笔记--009-使用原生sql语句操作数据

    1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

  2. 08章 分组查询、子查询、原生SQL

    一.分组查询 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  3. jDialects:一个从Hibernate抽取的支持70多种数据库方言的原生SQL分页工具

    jDialects(https://git.oschina.net/drinkjava2/jdialects) 是一个收集了大多数已知数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语 ...

  4. 使用hibernate原生sql查询,结果集全为1的问题解决

    问题如下: String sqlTest ="select summary,summaryno from F_Summary"; List<Map<Object, Ob ...

  5. [转]ThinkPHP中如何使用原生SQL

    From : http://huangqiqing123.iteye.com/blog/1540323 TP的模型可以支持原生SQL操作,提供了query和execute两个方法,为什么原生SQL还要 ...

  6. Hibernate 函数 ,子查询 和原生SQL查询

    一. 函数 聚合函数:count(),avg(),sum(),min(),max() 例:(1)查询Dept表中的所有的记录条数. String hql=" select count(*) ...

  7. SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

    上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...

  8. (25)ASP.NET Core EF查询(复杂查询运算符、原生SQL查询、异步查询)

    1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符, ...

  9. laravel的ORM转为原生sql

    注:mysql测试成功,mongoDB测试失败//将laravel的ORM转为原生sql $SubProfits为laravel的ORM对象 $SubProfits = model::where('i ...

随机推荐

  1. jQuery选择器与事件学习笔记

    层次选择器:  $("div li")获取div下的所有li元素(后代.子.子的子......)  $("div>li")获取div下的直接li子元素.  ...

  2. mpvue重构小程序之坑点1

    对于最近刚做的项目,想着用框架重新架构一遍,方便以后拓展,毕竟现在拓展方向非常大. 目前主要碰到两个略坑的问题: 1: 关于用户授权信息的按钮,原生是以下方式,使用bindgetuserinfo事件 ...

  3. spring-JDBC Template

    JDBC Template概念 为简化持久化操作,spring在JDBC API之上提供JDBC Template组件 提供统一模板: 环境配置 1.创建MySQL数据库 2.搭建maven项目,并引 ...

  4. scrapy--BeautifulSoup

    BeautifulSoup官方文档:https://beautifulsoup.readthedocs.io/zh_CN/latest/#id8 太繁琐的,精简了一些自己用的到的. 1.index.h ...

  5. JavaScript高级程序设计第三版.CHM【带实例】

    从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...

  6. linux上面安装svn步骤

    一.安装 使用yum,非常简单 yum install subversion 二.配置 2.1.创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个 ...

  7. php扩展开发-资源类型

    资源类型在内核中的结构 //zend_list.h typedef struct _zend_rsrc_list_entry { void *ptr; int type; int refcount; ...

  8. NPOI导出Excel,添加图片和设置格式,添加条形码

    先上代码 using grproLib; using System; using System.Collections.Generic; using System.Data; using System ...

  9. 宁夏邀请赛F FLOYD

    Moving On Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn.Each ci ...

  10. P2567 [SCOI2010]幸运数字 DFS+容斥定理

    P2567 [SCOI2010]幸运数字 题目描述 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,66 ...