Как подключить Python к Базе Данных PostgreSQL и отобразить ее в PyQt5?

Рейтинг: 1Ответов: 0Опубликовано: 07.03.2023

Дали задание по курсовой, в которой помимо самой курсовой нужно сделать:

  1. БД (Сделал на PostgreSQL);
  2. Свою программу на любом языке программирования (Выбор пал на Python). Как я понял, программа должна уметь выводить подключенную Базу Данных и переключаться по таблицам;

Создал main.py, в нём подключил psycopg2 (данные для подключения лежат в config.py) для подключения к Базе Данных.

Ещё есть PyQt5 для создания окошка с данными, назвал пару кнопок "Вперед" и "Назад", а дальше просто не понимаю, как связать их вместе, и можно ли так сделать?

Вопрос: Как подключить Python к Базе Данных PostgreSQL и отобразить ее в PyQt5?

Вот код в main.py:

from PyQt5 import QtWidgets

from PyQt5.QtWidgets import QApplication, QMainWindow

from PyQt5.QtSql import 

QSqlDatabase,QSqlTableModel,QSqlQuery,QSqlQueryMod el
import sys
import psycopg2
from config import host, user, password,db_name
# connect to database
connection = psycopg2.connect(
host=host,
user=user,
password=password,
database=db_name
)

print("Database opened successfully")


def application():
app = QApplication(sys.argv)
window = QMainWindow()

window.setWindowTitle("Изи СУБД")
window.setGeometry(400,300, 450,450)

main_text = QtWidgets.QLabel(window)
main_text.setText("База данных Аэропорт")
main_text.move(145, 15)
main_text.adjustSize()

Rbtn = QtWidgets.QPushButton(window)
Rbtn.move(230, 350)
Rbtn.setFixedSize(10,45)
Rbtn.setText("Вперед")
Rbtn.setFixedWidth(200)

Lbtn = QtWidgets.QPushButton(window)
Lbtn.move(20, 350)
Lbtn.setFixedSize(10, 45)
Lbtn.setText("Назад")
Lbtn.setFixedWidth(200)

db = QSqlDatabase.addDatabase('PostgreSQL')


window.show()
sys.exit(app.exec_())

if __name__=="__main__":
application()

Вот config.py:

host = "localhost"
user = "postgres"
password = "123q"
db_name ="BD Aeroport"
port = 5432

Подскажите, что посмотреть, может, материал какой, информацию на форуме (может, не увидел) или свой код, в любом случае буду благодарен! Даже если просто выводиться будет без кнопок, то уже прогресс будет!))

Ответы

Ответов пока нет.