2016-12-14 8 views
0

В настоящее время я работаю над приложением, которое может получить доступ к базе данных sqlalchemy с помощью PyQt и отображать ее содержимое в TableView или какой-либо другой виджет. Чтобы это было просто, давайте просто скажем, что это телефонная книга с именем, номером и адресом улицы. Я бы хотел, чтобы Tableview периодически обновлялся, поэтому, если что-то добавлено в базу данных, оно обновится. соединение с базой данных также будет выполняться беспроводным способом, поэтому я не буду знать, было ли внесено изменение. Я написал код, который я модифицировал из базы данных postgrese. Но я нашел плохую документацию для аспекта sqlalchemy, а также для подключения с драйвером двигателя в PyQt. Любая помощь приветствуется или даже ясный пример. Заранее спасибо.Подключение к базе данных Sqlalchemy с PyQt и сохранение содержимого базы данных в TableView в PyQt

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

Код выше только для создания двигателя для подключения к базе данных SQLAlchemy

+0

То, что вы пытаетесь достичь, не ясно. Похоже, вам нужно больше читать и практиковать SQLAlchemy и PyQt. SQLAlchemy не является базой данных, это набор инструментов SQL (также известный как ядро) и ORM для Python. Он также имеет одну из лучших документов, которые я видел для библиотек Python, поэтому не бедных. PyQt является связыванием для использования Qt в Python. Оба являются разными проектами, и вполне вероятно, что вам придется самостоятельно написать логику, чтобы взаимодействовать с двумя библиотеками. –

+0

Я по-прежнему новичок в проекте и пытаюсь выяснить некоторые отличия от всех приложений, которые мы используем. Думаю, когда я сказал о плохом документации, я имел в виду между взаимодействием с PyQt и Sqlalchemy. Но по существу я пытаюсь подключить приложение PyQt, используя postgresql и psycopg2 с помощью инструментария sqlalchemy. Im новое для всего этого, и я пока не смог получить слишком много деталей. – Shayan

ответ

0

Что вы спрашиваете, в основном миллисекунду обновления содержимого графического интерфейса, который может быть очень напрягает на сервере, если размер данных огромна и, или нет, никто из людей, обращающихся к ней, много. Вместо этого я бы добавил кнопку «Обновить», которая перезагружает данные из базы данных и помещает их в 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

Это похоже на отличное начало. Я буду держать вас в курсе, и у меня может быть следующий вопрос. Это большой проект, поэтому мы пытаемся общаться с нужными людьми по всем вопросам, которые мы имеем относительно приложения GUI, используя PyQt. Благодарю за помощь. – Shayan

+0

Пожалуйста, не стесняйтесь. Я новичок в pyqt, и я работаю над очень похожим проектом, поэтому мы можем помогать друг другу :-) – Oxymoron88