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'처럼 보입니다.하지만 말하기는 어렵습니다. 내가 찾은 유일한 문서는 짜증. 'pimysql.connect'를 ['inspect.Signature'] (https://docs.python.org/3/library/inspect.html#inspect.Signature)와 같이 introspect하려고하면 기본 인자 값을 볼 수 있습니다. – user2357112
감사합니다. 내가 이것을 게시하자마자 문서화를 살펴 보았습니다. docstring에 있다면 RTD 페이지에 완전한 API 참조가없는 이유를 모르겠습니다 ... –