安裝完畢以後就可以寫**測試了,我的測試環境是windows下安裝了postgresql資料庫,執行的python**在虛擬機器的ubuntu下,其實拿到windows執行也是沒問題的,
**如下:
import psycopg2
import psycopg2.extras
database_port = 5432 #postgresql埠號,安裝postgresql時設定的,一般預設是5432
database_name = "testdb" #資料庫名稱
database_username = "postgres" #使用者名稱,這裡的使用者名稱也是在安裝postgresql時設定的,一般預設postgres
database_password = "123456" #鏈結資料庫伺服器的密碼,安裝時設定,安裝完畢後可以修改的
class mydb():
def __init__(
self,
host=database_host,
port=database_port,
user=database_username,
password=database_password,
database=database_name):
print host,port,user,password,database
self.conn = psycopg2.connect(
host = host,
port = port,
user = user,
password = password,
database = database)
self.cursor = self.conn.cursor(
cursor_factory = psycopg2.extras.dictcursor)
self.result = none
def getnextone(self,):
self.result = self.cursor.fetchone()
return self.result
def getall(self,):
self.result = self.cursor.fetchall()
return self.result
def getcurrentone(self,):
return self.result
def runsql(self,sql):
return self.cursor.execute(sql)
def close(self,):
self.cursor.close()
self.conn.close()
def rowcount(self,):
return self.cursor.rowcount
def commit(self,):
return self.conn.commit()
if __name__ == "__main__":
print "begin"
db = mydb()
db.runsql('select * from config_road')
rows = db.cursor.fetchall()
for i in rows:
print i
print db.cursor.rowcount
以上就是鏈結和一些操作的函式**,可以看到,非常的簡單的。
因為預設的
self.cursor = self.conn.cursor()
的結果返回的是元組,因此在**中使用下面的方式
self.cursor = self.conn.cursor(
cursor_factory = psycopg2.extras.dictcursor)
這使得返回結果是字典
如果鏈結不上伺服器的資料庫,
首先檢查c:\program files (x86)\postgresql\9.0\data\pg_hba.conf這個檔案的配置是否正確,
比如,我windows的ip位址是192.168.8.66,虛擬機器的ubuntu系統的ip是192.168.8.22
這樣的話只需在# ipv4 local connections:下面新增如下一行即可。
host all all 192.168.8.0/24 md5
上面那一行的意思是允許ip位址在192.168.8.0--192.168.8.255之間的機器連線到這個伺服器,
這個檔案一開始預設的應該是
host all all 127.0.0.1/32 md5
意思是只允許本地機器連線該資料庫,/24和/32的區別是,24表示位址不固定,32表示位址固定的
檢查完上述檔案以後再檢查c:\program files (x86)\postgresql\9.0\data\stgresql.conf的配置,在這個檔案中找到listen_addresses = 'localhost',將這一句改為listen_addresses = '*'即可。
最後的最好,如果還是連不上,那就只能放大招了,檢查windows防火牆是否開啟,如果開啟,請關閉
python連線postgre 資料庫
1 安裝 psycopg2 庫 pip install psycopg2 2 使用 導入庫 import psycopg2 import psycopg2.extras 需要返回結果是字典時使用此庫 建立連線 conn psycopg2.connect database basename,user ...
Linux Docker構建postgre映象
起初為什麼要構建乙個新的資料庫映象,是因為我們好多排序是漢字的問題,所以牽扯到編碼的問題 1 首先建立乙個資料夾 mkdir postgis 2 建立檔案dockerfile和build.sh 內容如下 dockerfile from mdillon postgis 11 run localedef...
Python大規模資料插入Postgresql
需要owner許可權 alter table t rs standard satellite image add constraint unique source product id unique source product id batchinsert批量插入 def batchinsert ...