2016-12-14 51 views
0

我目前正在研究一個應用程序,該應用程序可以使用PyQt訪問sqlalchemy數據庫並將其內容顯示到TableView或其他窗口小部件中。爲了保持現在簡單,讓我們只是說這是一個名稱,號碼和街道地址的電話簿。我想讓Tableview定期更新自己,所以如果有東西添加到數據庫中,它會自行刷新。與數據庫的連接也將以無線方式完成,所以我不知道是否進行了更改。我寫了一些我從postgrese數據庫修改的代碼。但是我發現在sqlalchemy方面文檔很差,並且在PyQt中與引擎驅動程序連接。任何幫助表示讚賞,甚至是一個明確的例子。先謝謝你。使用PyQt連接到Sqlalchemy數據庫並將數據庫內容保存到PyQt的TableView中

engine = create_engine('postgresql+psycopg2://postgres::[email protected]:5432/masterdb') 

上面的代碼只是創造引擎連接到SQLAlchemy的數據庫

+0

你正在嘗試實現目前尚不清楚。看起來你需要更多的閱讀和練習SQLAlchemy和PyQt。 SQLAlchemy不是數據庫,它是一個SQL工具包(也稱爲核心),也是一個Python的ORM。它也是我所見過的Python庫中最好的文檔之一,所以並不差。 PyQt是一個在Python中使用Qt的綁定。兩者都是不同的項目,您可能需要自己編寫邏輯才能使兩個庫進行交互。 –

+0

我對這個項目還很陌生,試圖找出我們使用的所有應用程序的一些差異。我想當我說可憐的文檔時,我的意思是介於與PyQt和Sqlalchemy接口之間。但基本上,我試圖使用postgresql和psycopg2與sqlalchemy tooltkit連接PyQt應用程序。我對所有這些都是新鮮事物,到目前爲止我還沒有得到太多細節。 – Shayan

回答

0

你所要求基本上是的GUI內容毫秒刷新這可能是如果大小在服務器上非常緊張,的數據是巨大的,或者如果沒有人訪問它很多。我會添加一個「刷新」按鈕,重新從數據庫中加載數據,並在點擊時將其放到qtablewidget上。

對於通過SQLAlchemy的連接到PostgreSQL,我用這個:

import sqlalchemy 
User = "xxxx" 
Pass = "xxxx" 
Host = "192.168.x.x" 
Port = "xxxx" 
DB = "xxxx" 
SQLEngine = sqlalchemy.create_engine('postgresql://'+User+':'+Pass+'@'+Host+':'+Port+'/' + DB,poolclass=sqlalchemy.pool.NullPool) 

我用熊貓從PostgreSQL的讀取數據:

import pandas as pd 
Data = pd.read_sql_query('select * from tablename ', con=SQLEngine) 
+0

這看起來像一個很好的開始。我會保持更新,我可能會有後續問題。這是一個很大的項目,所以我們試圖在使用PyQt的關於GUI應用程序的所有問題上與正確的人交流。不過謝謝你的幫忙。 – Shayan

+0

請隨意。我也是pyqt的新手,我正在研究一個非常類似的項目,所以我們可以互相幫助:-) – Oxymoron88

相關問題