python - SQLAlchemy - 会话返回值,游标不
问题描述
每当我通过会话连接到我的数据库时,它都会返回预期值。但是,光标命令似乎不会返回任何值。
这是我的样板:
import pprint, sqlalchemy as db
from sqlalchemy.orm import sessionmaker
from models import Event
database = 'sandbox_test'
engine = db.create_engine('mysql+mysqlconnector://user:pass!!@localhost:3306/'+database+'?charset=utf8')
这是我的“会话”块:
Session = sessionmaker(bind=engine)
session = Session()
results = session.query(Event).first()
pprint.pprint(results.emp_id)
它返回firstname_lastname
。
这是我的“光标”块:
conn = engine.raw_connection()
curs = conn.cursor()
curs.execute('select * from events limit 100;',multi=True)
results = curs.fetchone()
pprint.pprint(results)
它返回None
。
我如何错误地格式化光标块?
解决方案
您需要遍历光标,然后遍历该结果,如下所示:
conn = engine.raw_connection()
curs = conn.cursor()
for res in curs.execute("""SELECT * FROM test;SELECT * FROM test;""", multi=True):
for row in res:
print(row)
这基于此处的 MySQL 连接器文档。对于原始连接操作,您需要参考特定的 DB-API 驱动程序文档作为精确的 API,并且调用约定往往与驱动程序和 RDBMS 不同。SQLAlchemy 文档仅在这些情况下提供一般指导。
推荐阅读
- apache-kafka - Kafka Streams Word Count 它是如何工作的?
- css - React/CSS:在 React 应用程序中使用 CSS 样式表?
- c++ - 在 D3D11 2D 中发布绘图纹理
- sql-server - 如何为更新查询转义单引号或双引号?
- java - 使用 Quicksort 的数组/链表的内置 Java 排序算法
- java - 使用springboot创建具有空属性的对象的Json到POJO
- javascript - 尽管正在访问数据,但我的减速器仍然返回 undefined
- python - 减少函数中变量的正确方法是什么?
- php - 将参数传递给 Twig 宏
- powershell - 如何选择字符串并仅输出最后一个文本行