从 python 访问测试 PostgreSQL 数据库
Accessing test PostgreSQL database from python
我似乎无法正确连接并从 python 中的测试 postgreSQL 数据库中提取数据。我使用 Homebrew 安装了 PostgreSQL。这是我从终端访问数据库 table 和值的方式:
xxx-macbook:~ xxx$ psql
psql (9.4.0)
Type "help" for help.
xxx=# \dn
List of schemas
Name | Owner
--------+---------
public | xxx
(1 row)
xxx=# \connect postgres
You are now connected to database "postgres" as user "xxx".
postgres=# SELECT * from test.test;
coltest
-----------
It works!
(1 row)
但是当尝试使用下面的代码从 python 访问它时,它不起作用。有什么建议吗?
########################################################################################
# Importing variables from PostgreSQL database via SQL commands
db_conn = psycopg2.connect(database='postgres',
user='xxx')
cursor = db_conn.cursor()
#querying the database
result = cursor.execute("""
Select * From test.test
""")
print "Result: ", result
>>> Result: None
应该说:结果:有效!
您需要获取结果。
来自文档:
The [execute()
-]method returns None. If a query was executed, the returned values can be retrieved using fetch*()
methods.
示例:
result = cursor.fetchall()
供参考:
请注意(与 psql
不同)psycopg2
将任何内容包装在交易中。因此,如果您打算对数据库进行持久更改(INSERT
、UPDATE
、DELETE
、...),您需要明确提交它们。否则,当连接对象被销毁时,更改将自动回滚。在此处阅读有关该主题的更多信息:
我似乎无法正确连接并从 python 中的测试 postgreSQL 数据库中提取数据。我使用 Homebrew 安装了 PostgreSQL。这是我从终端访问数据库 table 和值的方式:
xxx-macbook:~ xxx$ psql
psql (9.4.0)
Type "help" for help.
xxx=# \dn
List of schemas
Name | Owner
--------+---------
public | xxx
(1 row)
xxx=# \connect postgres
You are now connected to database "postgres" as user "xxx".
postgres=# SELECT * from test.test;
coltest
-----------
It works!
(1 row)
但是当尝试使用下面的代码从 python 访问它时,它不起作用。有什么建议吗?
########################################################################################
# Importing variables from PostgreSQL database via SQL commands
db_conn = psycopg2.connect(database='postgres',
user='xxx')
cursor = db_conn.cursor()
#querying the database
result = cursor.execute("""
Select * From test.test
""")
print "Result: ", result
>>> Result: None
应该说:结果:有效!
您需要获取结果。
来自文档:
The [
execute()
-]method returns None. If a query was executed, the returned values can be retrieved usingfetch*()
methods.
示例:
result = cursor.fetchall()
供参考:
请注意(与 psql
不同)psycopg2
将任何内容包装在交易中。因此,如果您打算对数据库进行持久更改(INSERT
、UPDATE
、DELETE
、...),您需要明确提交它们。否则,当连接对象被销毁时,更改将自动回滚。在此处阅读有关该主题的更多信息: