2014-05-08 1 views
2

perl에서 DBI 모듈은 DB와 상호 작용하는 표준 방식으로, 각 DB 공급 업체는 DBI에서 사용하는 자체 DBD 모듈을 제공합니다. (다소 JDBC와 비슷합니다.) 비슷한 모델이 파이썬에 존재하는지는 알 수 없습니다. Postgres의 경우 pg와 pgdb 모듈이 있는데, pgdb는 DB-API 2.0을 따르고 pgdb는 그렇지 않습니다. 내가 신경 써야 할까? pgdb를 사용하면 DB-API 2.0을 따르는 MySQL db 모듈과 동일한 인터페이스를 사용해야합니까?펄에서 파이썬으로 간다면 파이썬을위한 DBI와 같은 것이 있는지 궁금합니다.

감사합니다.

+3

예, [DB-API 2.0] (http://legacy.python.org/dev/peps/pep-0249/)은 저수준 DB 액세스를위한 확실한 방법이며이를 구현하는 모듈은 실제로 동일한 인터페이스를 구현해야합니다. 더 높은 수준의 추상화 API를 추상화하는 API의 경우 [SQLAlchemy] (http://www.sqlalchemy.org/)를 살펴보십시오. 또한 ORM 기능을 제공하지만 특정 RDBMS에 대해 불가지론적인 코드를 작성하는 데는 [core] (http://docs.sqlalchemy.org/en/rel_0_9/#sqlalchemy-core)를 사용할 수 있습니다. –

+0

[데이터베이스 URL] (http://docs.sqlalchemy.org/en/rel_0_9/core/engines.html#database-urls)의 SQLAlchemy 문서 및 [PostgreSQL] (http : //docs.sqlalchemy. org/ko/rel_0_9/dialects/postgresql.html). –

+0

위대한, 고마워요! – user3326384

답변

1

DB API 2.0 호환 Python에서 Postgres와 상호 작용하는 데 사용되는 모듈은 psycopg2 (http://initd.org/psycopg/docs/index.html)입니다.

그건 내가 파이썬 코드에서 Postgres와 상호 작용할 때 항상 사용하는 코드입니다. 나는 사용하기 쉽고, 사전 기반 커서 (즉, 행이 키 이름으로 된 사전에 배열이고 배열과 대비되는 사전에있는 DictCursor)와 같이 쉽게 추가 할 수있는 멋진 엑스트라를 제공합니다. .

named cursors도 있습니다. 커서를 사용하면 커서에 이름을 제공하고 psycopg2은 자동으로 기본 청크 크기 2000의 서버 측 커서를 만듭니다.이 코드는 다른 Python과 마찬가지로 반복 할 수 있습니다 객체를 가져오고, 후속 가져 오기는 백그라운드에서 투명하게 진행됩니다.

+0

감사합니다. 체크 아웃 할 것입니다. – user3326384

1

예, Python DBAPI 2.0은 Python에서 데이터베이스와 상호 작용하기위한 표준 API입니다. 그러나 DBAPI는 매우 간단하고 낮은 수준의 인터페이스로, 다른 데이터베이스가 SQL을 다르게 구현할 때 다른 데이터베이스에서 이식 가능한 데이터베이스 쿼리를 쉽게 작성할 수는 없습니다.

휴대용 데이터베이스 응용 프로그램을 작성하는 데 도움이되는 고급 인터페이스의 경우 SQLAlchemy를 확인할 수 있습니다. SQLalchemy 코어와 ORM은 모두 데이터베이스를 쿼리 할 수있는 언어를 제공합니다.

관련 문제