Взаимодействие с БД в Python

Рейтинг: 2Ответов: 2Опубликовано: 11.07.2011

Имеет ли Python свои библиотеки для работы с СУБД (как PHP)?

Ответы

▲ 2

Да, безусловно, причем для очень многих СУБД. Однако, работать с СУБД напрямую - грустно и (идеологически) неправильно. Гораздо удобнее использовать ORM (object-relation mapping), в Python наиболее распространен SQLAlchemy и надстройка над ним - Elixir

▲ 2

К основным БД у Python есть либы и причем не по одной.

В своей работе использую sqlite, Firebird и Postgresql.
К примеру, кусок кода для Postgresql :

#-*- coding: UTF-8 -*-
import pg
pgcon=None

def opendb(host,base,user,password):
    global pgcon
    pgcon=pg.connect(dbname=base,host=host,user=user,passwd=password)

def closedb():
    global pgcon
    pgcon.close()

def querysql(val):
    global pgcon
    pgcon.query(val)
    pass

def queryparam(sql_val,param):
    global pgcon
    pgcon.query(sql_val % pg.escape_bytea(param))

def queryresparam(val):
    global pgcon    
    f=pg.unescape_bytea(pgcon.query(val).getresult()[0][0])
    return f

def querysqlres(val):
    global pgcon
data=pgcon.query(val).getresult()
return data