怎么用python连接python3 postgresqll

今天看啥 热点:
用Python写了一个postgresql函数,感觉很爽
用Python写了一个postgresql函数,感觉很爽
CREATE LANGUAGE
postgresql函数
CREATE OR REPLACE FUNCTION myfun1(text)
RETURNS text AS
s = args[0]
n = len(s);
for i, c in enumerate(s):
h = h + ord(c)*31**(n-1-i);
bits = 4*8;
return (h + 2**(bits-1)) % 2**bits - 2**(bits-1)
LANGUAGE 'plpythonu';
调用:返回字符串的hashcode值
select myfun1('测试'),myfun1('a'),myfun1('A')
上述代码在MAC 笔记本上运行成功
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Sql Server最近更新python使用pgsql连接postgresql - 为程序员服务
为程序员服务
python使用pgsql连接postgresql
决定使用python玩了一下postgresql。在windows下安装pgsql是很简单的,我在这里了一个最新版本的one key installer安装包,9.1.4版本。
在python中安装组件psycopg2
创建好新用户我数据库之后,使用下面的代码连接数据库:
import psycopg2
import sys
con = None
con = psycopg2.connect(database='mark', user='mark',password=&admin&)
cur = con.cursor()
cur.execute('SELECT version()')
ver = cur.fetchone()
except psycopg2.DatabaseError, e:
print 'Error %s' % e
sys.exit(1)
con.close()
如果连接成功的话,将会显示出当前pgsql的版本信息!
如我的数据库连接成功后返回:
('PostgreSQL 9.1.4, compiled by Visual C++ build 1500, 32-bit',)
您可能的代码
相关聚客文章
荣誉:1114
相关专栏文章PostgreSQL连接Python
现在位置: >
PostgreSQL连接Python
PostgreSQL连接Python来源:原创文章&&& 由 易百 更新版本&&& 浏览:人次
PostgreSQL可以用Python psycopg2模块集成。 sycopg2是Python编程语言的PostgreSQL数据库的适配器。 其程序代码少,速度快,稳定。不需要单独安装这个模块,因为它默认情况下被运往随着Python版本在2.5.x一起的。如果不把它安装在机器上,然后可以使用yum命令安装它,如下所示:
$yum install python-psycopg2
要使用psycopg2的模块,首先必须创建一个Connection对象,它表示数据库然后再可以选择创建游标对象,这将帮助执行的所有SQL语句。
Python psycopg2 模块APIs
以下是psycopg2的重要的的模块例程可以满足Python程序与PostgreSQL数据库的工作。如果寻找一个更复杂的应用程序,那么可以看看Python psycopg2的模块的官方文档。
API & 描述
psycopg2.connect(database=&testdb&, user=&postgres&, password=&cohondob&, host=&127.0.0.1&, port=&5432&)
这个API打开一个连接到PostgreSQL数据库。如果成功打开数据库时,它返回一个连接对象。
connection.cursor()
该程序创建一个光标将用于整个数据库使用Python编程。
cursor.execute(sql [, optional parameters])
此例程执行SQL语句。可被参数化的SQL语句(即占位符,而不是SQL文字)。 psycopg2的模块支持占位符用%s标志
例如:cursor.execute(&insert into people values (%s, %s)&, (who, age))
curosr.executemany(sql, seq_of_parameters)
该程序执行SQL命令对所有参数序列或序列中的sql映射。
curosr.callproc(procname[, parameters])
这个程序执行的存储数据库程序给定的名称。该程序预计为每一个参数,参数的顺序必须包含一个条目。
cursor.rowcount
这个只读属性,它返回数据库中的行的总数已修改,插入或删除最后 execute*().
此方法提交当前事务。如果不调用这个方法,无论做了什么修改,自从上次调用commit()是不可见的,从其他的数据库连接。
connection.rollback()
此方法会回滚任何更改数据库自上次调用commit()方法。
connection.close()
此方法关闭数据库连接。请注意,这并不自动调用commit()。如果你只是关闭数据库连接而不调用commit()方法首先,那么所有更改将会丢失!
cursor.fetchone()
这种方法提取的查询结果集的下一行,返回一个序列,或者无当没有更多的数据是可用的。
cursor.fetchmany([size=cursor.arraysize])
这个例程中取出下一个组的查询结果的行数,返回一个列表。当没有找到记录,返回空列表。该方法试图获取尽可能多的行所显示的大小参数。
cursor.fetchall()
这个例程获取所有查询结果(剩余)行,返回一个列表。空行时则返回空列表。
连接到数据库
Python代码显示了如何连接到一个现有的数据库。如果数据库不存在,那么它就会被创建,最终将返回一个数据库对象。
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database=&testdb&, user=&postgres&, password=&pass123&, host=&127.0.0.1&, port=&5432&)
print &Opened database successfully&
在这里,也可以提供数据库testdb的名称,如果数据库成功打开,那么它会给下面的消息:
Open database successfully
以下Python程序将使用以前创建的数据库中创建一个表:
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database=&testdb&, user=&postgres&, password=&pass123&, host=&127.0.0.1&, port=&5432&)
print &Opened database successfully&
cur = conn.cursor()
cur.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY
REAL);''')
print &Table created successfully&
conn.commit()
conn.close()
上述程序执行时,它会创建表COMPANY 在数据库test.db中,它会显示以下消息:
Opened database successfully
Table created successfully
INSERT 操作
Python程序显示了我们如何创建表COMPANY 在上面的例子中创建表中的记录:
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database=&testdb&, user=&postgres&, password=&pass123&, host=&127.0.0.1&, port=&5432&)
print &Opened database successfully&
cur = conn.cursor()
cur.execute(&INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )&);
cur.execute(&INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )&);
cur.execute(&INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )&);
cur.execute(&INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )&);
conn.commit()
print &Records created successfully&;
conn.close()
上述程序执行时,它会创建COMPANY表中的记录,并显示以下两行:
Opened database successfully
Records created successfully
SELECT 操作
Python程序,显示如何获取并显示COMPANY 表在上面的例子中创建的记录:
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database=&testdb&, user=&postgres&, password=&pass123&, host=&127.0.0.1&, port=&5432&)
print &Opened database successfully&
cur = conn.cursor()
cur.execute(&SELECT id, name, address, salary
from COMPANY&)
rows = cur.fetchall()
for row in rows:
print &ID = &, row[0]
print &NAME = &, row[1]
print &ADDRESS = &, row[2]
print &SALARY = &, row[3], &\n&
print &Operation done successfully&;
conn.close()
当上述程序执行时,它会产生以下结果:
Opened database successfully
California
Operation done successfully
UPDATE 操作
Python代码显示如何,我们可以使用UPDATE语句来更新记录,然后从COMPANY表获取并显示更新的记录:
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database=&testdb&, user=&postgres&, password=&pass123&, host=&127.0.0.1&, port=&5432&)
print &Opened database successfully&
cur = conn.cursor()
cur.execute(&UPDATE COMPANY set SALARY = 25000.00 where ID=1&)
conn.commit
print &Total number of rows updated :&, cur.rowcount
cur.execute(&SELECT id, name, address, salary
from COMPANY&)
rows = cur.fetchall()
for row in rows:
print &ID = &, row[0]
print &NAME = &, row[1]
print &ADDRESS = &, row[2]
print &SALARY = &, row[3], &\n&
print &Operation done successfully&;
conn.close()
当上述程序执行时,它会产生以下结果:
Opened database successfully
Total number of rows updated : 1
California
Operation done successfully
DELETE 操作
Python代码显示了如何我们可以使用DELETE语句删除记录,然后获取并显示COMPANY&表剩余的记录:&
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database=&testdb&, user=&postgres&, password=&pass123&, host=&127.0.0.1&, port=&5432&)
print &Opened database successfully&
cur = conn.cursor()
cur.execute(&DELETE from COMPANY where ID=2;&)
conn.commit
print &Total number of rows deleted :&, cur.rowcount
cur.execute(&SELECT id, name, address, salary
from COMPANY&)
rows = cur.fetchall()
for row in rows:
print &ID = &, row[0]
print &NAME = &, row[1]
print &ADDRESS = &, row[2]
print &SALARY = &, row[3], &\n&
print &Operation done successfully&;
conn.close()
当上述程序执行时,它会产生以下结果:
Opened database successfully
Total number of rows deleted : 1
California
Operation done successfully
本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,传播学习教程;
转载请注明:文章转载自:易百教程 []
本文标题:PostgreSQL连接Python
转载请保留原文链接:
上一篇: &&&&
下一篇:没有了
易百教程提供的内容仅用于培训。我们不保证内容的正确性。通过使用本站内容而可能带来的风险与本站无关。易百教程的所有内容仅供测试,对任何法律问题及风险不承担任何责任。
当使用本站时,代表您已接受了本站的使用条款和隐私条款。版权所有,保留一切权利!Python:操作PostgreSQL数据库(使用PyGreSQL)_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Python:操作PostgreSQL数据库(使用PyGreSQL)
来源:Linux社区&
作者:dyx1024
这里()写了使用python写了操作嵌入式数据库SQLite的方法,今天用python写了针对个人比较熟悉的开源数据库PostgreSQL的常用操作,开发过程简介如下:
一、环境信息:&
& &1、操作系统:
Enterprise Linux 4
& & & & Windows XP SP2
& 2、数据库:
& & & & PostgreSQL8.3
& 3、 开发工具:
& & & & Eclipse+Pydev+python2.6+PyGreSQL(提供pg模块)
& 4、说明:
& & & & a、PostgreSQL数据库运行于RedHat Linux上,Windows下也要安装pgAdmin(访问PostgreSQL服务器的客户端)。
& & & & b、PyGreSQL(即pg)模块下载路径及API手册:http://www.pygresql.org/
二、配置:
& & & &1、将pgAdmin安装路径下以下子目录添加到系统环境变量中:
& & & & & & &E:\Program Files\PostgreSQL\8.3\lib
& & & & & & &E:\Program Files\PostgreSQL\8.3\bin
& & & &2、将python安装目录C:\Python26\Lib\site-packages\pywin32_system32下的dll文件拷贝到C:\WINDOWS\system32
& & & &3、说明:
a. 如果跳过以上两步,在import pg时将会报错,浪费较长时间才搞定。
b. 如果对PostgreSQL安装和配置不熟悉,请参考本博客中以下几篇文章:
《RedHat Linux上安装PostgreSQL》
《PostgreSQL服务端监听设置及客户端连接方法》
《PostgreSQL数据库创建、删除方法》
三、程序实现:
[python] view plaincopyprint?
import&logging&&
import&logging.config&&
import&pg&&
LOG_FILENAME&=&'logging.conf'&&
LOG_CONTENT_NAME&=&'pg_log'&&
def&log_init(log_config_filename,&logname):&&
&&&&logging.config.fileConfig(log_config_filename)&&
&&&&logger&=&logging.getLogger(logname)&&
&&&&return&logger&&
def&operate_postgre_tbl_product():&&
&&&&pgdb_logger.debug("operate_postgre_tbl_product&enter...")&&&
&&&&try:&&
&&&&&&&&pgdb_conn&=&pg.connect(dbname&=&'kevin_test',&host&=&'192.168.230.128',&user&=&'dyx1024',&passwd&=&'888888')&&
&&&&except&Exception,&e:&&
&&&&&&&&&print&e.args[0]&&
&&&&&&&&&pgdb_logger.error("conntect&postgre&database&failed,&ret&=&%s"&%&e.args[0])&&&&&&
&&&&&&&&&return&&&&&&
&&&&("conntect&postgre&database(kevin_test)&succ.")&&&
&&&&&&&&&&
&&&&sql_desc&=&"DROP&TABLE&IF&EXISTS&tbl_product3;"&&
&&&&try:&&
&&&&&&&&pgdb_conn.query(sql_desc)&&
&&&&except&Exception,&e:&&
&&&&&&&&print&'drop&table&failed'&&
&&&&&&&&pgdb_logger.error("drop&table&failed,&ret&=&%s"&%&e.args[0])&&
&&&&&&&&pgdb_conn.close()&&&&
&&&&&&&&return&&
&&&&("drop&table(tbl_product3)&succ.")&&&
&&&&sql_desc&=&''&
&&&&try:&&&&&&
&&&&&&&&pgdb_conn.query(sql_desc)&&
&&&&except&Exception,&e:&&
&&&&&&&&print&'create&table&failed'&&
&&&&&&&&pgdb_logger.error("create&table&failed,&ret&=&%s"&%&e.args[0])&&
&&&&&&&&pgdb_conn.close()&&&&
&&&&&&&&return&&&&&&&&&&
&&&&("create&table(tbl_product3)&succ.")&&&
&&&&sql_desc&=&"INSERT&INTO&tbl_product3(sv_productname)&values('apple')"&&
&&&&try:&&
&&&&&&&&pgdb_conn.query(sql_desc)&&
&&&&except&Exception,&e:&&
&&&&&&&&print&'insert&record&into&table&failed'&&
&&&&&&&&pgdb_logger.error("insert&record&into&table&failed,&ret&=&%s"&%&e.args[0])&&
&&&&&&&&pgdb_conn.close()&&&&
&&&&&&&&return&&&&&&
&&&&("insert&record&into&table(tbl_product3)&succ.")&&&&&&&
&&&&sql_desc&=&"select&*&from&tbl_product3"&&
&&&&for&row&in&pgdb_conn.query(sql_desc).dictresult():&&
&&&&&&&&print&row&&
&&&&&&&&("%s",&row)&&&
&&&&sql_desc&=&"select&*&from&tbl_test_port"&&
&&&&for&row&in&pgdb_conn.query(sql_desc).dictresult():&&
&&&&&&&&print&row&&&
&&&&&&&&("%s",&row)&&&&&&&&&&
&&&&pgdb_conn.close()&&&&&&&&&
&&&&pgdb_logger.debug("operate_sqlite3_tbl_product&leaving...")&&&
if&__name__&==&'__main__':&&&
&&&&pgdb_logger&=&log_init(LOG_FILENAME,&LOG_CONTENT_NAME)&&&&&
&&&&operate_postgre_tbl_product()&&
相关资讯 & & &
& (03/04/:19)
& (01/26/:35)
& (08/14/:08)
& (02/12/:18)
& (01/19/:05)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 postgresql 远程连接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信