0
这可能是一个愚蠢的问题,但我找不到pymysql文档中的信息。什么是pymysql默认游标类?当我没有指定与数据库连接的游标类时,我的查询返回响应中每一行的列表。pymysql - 默认游标类名称
当我指定pymysql.cursors.DictCursor时,我得到一个字典响应。我希望能够在它们之间更改脚本中的不同连接。
我已经写了一个带有上下文管理器的小函数来产生游标,但它需要我每次指定游标类的名称。我知道我可以解决这个问题,但知道默认cursorclass的名字会很好。
from contextlib import contextmanager
import pymysql
@contextmanager
def openDb(host=DB_HOST, database=DB_DATABASE,
user=DB_USER, cursor=DB_CURSOR):
"""
Simple context manager for opening a db connection
"""
with pymysql.connect(host=host, database=database, user=user,
cursorclass=cursor) as cur:
yield cur
我大概可以写为:
@contextmanager
def openDb(host=DB_HOST, database=DB_DATABASE,
user=DB_USER, cursor=None):
"""
Simple context manager for opening a db connection
"""
if cursor:
with pymysql.connect(host=host, database=database, user=user,
cursorclass=cursor) as cur:
yield cur
else:
with pymysql.connect(host=host, database=database, user=user) as cur:
yield cur
,并让它默认为任何默认cursorclass是的,但我宁愿是明确的。
它看起来像是'pymysql.cursors.Cursor',但很难说。我发现的唯一文档很烂。你可以用''inspect.Signature'](https://docs.python.org/3/library/inspect.html#inspect.Signature)来查看'pymysql.connect'来查看默认参数值。 – user2357112
谢谢!只要我发布这一点,我想到了在文档中查找。如果它在文档中,我不知道为什么在RTD页面上没有完整的API参考... –