帮酷LOGO
0 0 评论
文章标签:POST  pos  Postgresql  postgres  

如何使用python连接到PostgreSQL

本文介绍如何使用python连接到PostgreSQL数据库。

在使用这些方法之前,PostgreSQL数据库和用户必须已经存在,

python 3的应用程序应该需要使用python Selector ,




使用python连接到PostgreSQL

在使用python访问PostgreSQL数据库之前,必须在虚拟环境中安装下列软件包:

psycopg2 :此软件包包含psycopg2模块,
PyGreSQL :此软件包包含pgdb模块,

这两个软件包都支持Python 的可移植SQL数据库API。这意味着,如果从一个模块切换到另一个模块,就可以重用所有现有的代码(下面的代码例子演示如何执行这个操作)。

设置python虚拟环境,并且安装PostgreSQL包

要设置python虚拟环境,并且安装PostgreSQL软件包,请按以下步骤操作:

使用SSH登录您的帐户。
若要创建虚拟环境,请键入以下命令:

cd ~
virtualenv -p /usr/bin/python2.7 sqlenv


virtualenv命令创建名为sqlenv的虚拟环境,此过程中的后续命令都假定该环境名为sqlenv ,可以使用你自己的环境名称,但是,请确保将所有出现的sqlenv替换为自己的环境名称,

若要激活虚拟环境,请键入以下命令:


source sqlenv/bin/activate

命令提示符现在以(sqlenv )开头,表明你正在使用python虚拟环境,如果你注销了SSH会话(或者使用deactivate命令停用虚拟环境),请确保在运行示例代码之前重新激活虚拟环境,

为要安装的软件包键入命令:

要安装psycopg2包,请键入以下命令:
 
pip install psycopg2

 

要安装PyGreSQL软件包,请键入以下命令:

 
pip install pygresql

 


使用python SQL数据库API的代码例子

在虚拟环境中安装PostgreSQL包之后,你就可以使用实际的数据库了,下面的示例Python代码演示了如何执行此操作,以及使用可移植SQL数据库API在不同的SQL包实现之间切换是多么容易。

在你的代码中,替换 USERNAME,PASSWORD,DBNAME


#!/usr/bin/python

hostname = 'localhost'
username = 'USERNAME'
password = 'PASSWORD'
database = 'DBNAME'

# Simple routine to run a query on a database and print the results:
def doQuery( conn ) :
 cur = conn.cursor()

 cur.execute("SELECT fname, lname FROM employee" )

 for firstname, lastname in cur.fetchall() :
 print firstname, lastname


print"Using psycopg2..."
import psycopg2
myConnection = psycopg2.connect( host=hostname, user=username, password=password, dbname=database )
doQuery( myConnection )
myConnection.close()

print"Using PyGreSQL..."
import pgdb
myConnection = pgdb.connect( host=hostname, user=username, password=password, database=database )
doQuery( myConnection )
myConnection.close()


本例子创建一系列连接对象,这些对象使用不同的PostgreSQL模块打开同一数据库,因为这些模块都使用可移植SQL数据库API接口,所以它们可以在doQuery()函数中使用代码,不需要进行任何修改。

当与数据库关联的连接时,创建Cursor对象,

在上面的示例中,使用不同模块代码唯一要改动的地方是import和connect语句。
使用旧版pg模块的代码例子

PyGreSQL包还包含一个旧的pg模块,你可以使用它连接到PostgreSQL ,虽然它很容易使用,但是,它并没有实现python SQL数据库API的可移植性。

下面的代码例子演示如何使用pg模块连接到PostgreSQL数据库,替换 USERNAME,PASSWORD,DBNAME


#!/usr/bin/python

import pg

conn = pg.DB(host="localhost", user="USERNAME", passwd="PASSWORD", dbname="DBNAME")

result = conn.query("SELECT fname, lname FROM employee")

for firstname, lastname in result.getresult() :
 print firstname, lastname

conn.close()


此示例创建一个Connection对象,该对象使用指定的参数打开PostgreSQL数据库。一旦有了与数据库关联的Connection对象,就可以使用原始SQL语句直接查询数据库(在本例中,SELECT查询employee表),getresult()方法读取查询返回的结果。最后,close()方法关闭与数据库的连接。



文章标签:pos  POST  postgres  Postgresql  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语