示例:常用操作

1. import psycopg2

3. # psycopg2常用连接方式
4. 1. conn = psycopg2.connect(dbname="postgres", user="user", password="password", host="localhost", port=port)
5. 2. conn = psycopg2.connect("dbname=postgres user=user password=password  host=localhost port=port")

8. # 创建连接对象
9. conn=psycopg2.connect(database="postgres",user="user",password="password",host="localhost",port=port)
10. cur=conn.cursor() #创建指针对象

12. # 创建连接对象(SSl连接)
13. conn = psycopg2.connect(dbname="postgres", user="user", password="password", host="localhost", port=port,
14. sslmode="verify-ca", sslcert="client.crt",sslkey="client.key",sslrootcert="cacert.pem")
15. 注意:sslcert,sslkey,sslrootcert分别为用户证书,用户私钥和根证书的文件路径,如果不进行赋值,默认为
16. ~/.postgresql目录下对应的client.crt,client.key和root.crt。

19. # 创建表
20. cur.execute("CREATE TABLE student(id integer,name varchar,sex varchar);")

22. #插入数据
23. cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(1,'Aspirin','M'))
24. cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(2,'Taxol','F'))
25. cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(3,'Dixheral','M'))

27. # 获取结果
28. cur.execute('SELECT * FROM student')
29. results=cur.fetchall()
30. print(results)

32. # 关闭连接
33. conn.commit()
34. cur.close()
35. conn.close()

37. # 使用日志
38. import logging
39. import psycopg2
40. from psycopg2.extras import LoggingConnection

42. logging.basicConfig(level=logging.DEBUG) # 日志级别
43. logger = logging.getLogger(__name__)

45. db_settings = {
46. "user": "user",
47. "password": "password",
48. "host": "localhost",
49. "database": "postgres",
50. "port": port
51. }
52. conn = psycopg2.connect(connection_factory=LoggingConnection, **db_settings)
53. conn.initialize(logger)