Как добавить запись в базу данных через приложение на pyqt5?

Пользователь

от urban_will , в категории: Python , 7 месяцев назад

Как добавить запись в базу данных через приложение на pyqt5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от amber_moore , 7 месяцев назад

@urban_will 

Чтобы добавить запись в базу данных через приложение на PyQt5, вам потребуется выполнить следующие шаги:

  1. Установите драйвер базы данных, с которым вы планируете работать. Например, для работы с СУБД SQLite вам понадобится установить драйвер sqlite3. Это можно сделать с помощью команды pip install sqlite3.
  2. Импортируйте необходимые модули в вашем приложении:
1
2
import sqlite3
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QLabel, QLineEdit, QPushButton


  1. Создайте подключение к базе данных. В случае SQLite это можно сделать следующим образом:
1
conn = sqlite3.connect('database.db')


где 'database.db' - имя файла базы данных.

  1. Создайте таблицу, если она еще не существует:
1
2
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS MyTable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)''')


  1. Создайте класс окна приложения и добавьте необходимые виджеты (например, поля ввода и кнопку "Добавить"):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()
        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

        self.name_input = QLineEdit()
        layout.addWidget(QLabel('Имя:'))
        layout.addWidget(self.name_input)

        self.email_input = QLineEdit()
        layout.addWidget(QLabel('Email:'))
        layout.addWidget(self.email_input)

        self.add_button = QPushButton('Добавить')
        self.add_button.clicked.connect(self.add_record)
        layout.addWidget(self.add_button)

    def add_record(self):
        name = self.name_input.text()
        email = self.email_input.text()
        
        cursor = conn.cursor()
        cursor.execute("INSERT INTO MyTable (name, email) VALUES (?, ?)", (name, email))
        conn.commit()

        self.name_input.clear()
        self.email_input.clear()
        self.name_input.setFocus()


  1. Создайте экземпляр приложения и откройте главное окно:
1
2
3
4
5
if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()


Теперь, когда пользователь нажимает кнопку "Добавить", запись будет добавлена в базу данных. Вы можете использовать SQL-запросы для выполнения других операций с базой данных, таких как выборка данных или обновление существующих записей.