Библиотека knigago >> Компьютеры и Интернет >> Учебники и самоучители по компьютеру >> PyQt для начинающих


Книга "Рассказы. Как страна судит своих солдат" Эдуарда Ульмана - это сборник острых и глубоких публицистических произведений, затрагивающих сложные вопросы взаимоотношений государства и армии. Ульман, известный журналист и писатель, основывает свои рассказы на реальных судебных процессах над военнослужащими. Он мастерски вплетает юридические тонкости, документальные факты и истории человеческих судеб в повествование, которое затягивает читателя с первой до последней страницы. Автор...

СЛУЧАЙНАЯ КНИГА

Ложное впечатление (в сокращении). Джеффри Арчер
- Ложное впечатление (в сокращении)

Жанр: Триллер

Год издания: 2007

Серия: Избранные романы Ридерз Дайджест

Джошуа Уиллман M - PyQt для начинающих

PyQt для начинающих
Книга - PyQt для начинающих.  Джошуа Уиллман M  - прочитать полностью в библиотеке КнигаГо
Название:
PyQt для начинающих
Джошуа Уиллман M

Жанр:

Учебники и самоучители по компьютеру

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "PyQt для начинающих"


Читаем онлайн "PyQt для начинающих". [Страница - 134]

.quit.
Убедившись, что SQLite установлен, перейдите в папку files в каталоге приложения,
где находится файл accounts.db, и выполните в оболочке следующую команду sqlite3:
$ sqlite3 accounts.db .dump >> accounts.sql
Вы увидите, что в папке files создан новый файл accounts.sql. Также стоит
отметить, что SQLite 3 входит в состав стандартной библиотеки Python, поэтому при
необходимости вы можете импортировать sqlite в свои приложения.
В следующем разделе мы рассмотрим, как использовать QSqlQuery не только для
создания таблиц.

Пояснения к запросу к базе данных с помощью
QSqlQuery
Программа, созданная в Листингах 14-8-14-10, не является необходимой для
графического интерфейса менеджера учета, но она дает еще несколько примеров
для понимания того, как вводить, обновлять и удалять записи с помощью SQL в
приложении PyQt. Цель раздела - продемонстрировать, как открыть существующую
базу данных и изменить ее содержимое. Мы сделаем это для базы данных, созданной
в разделе "Пояснения к работе с модулем QtSql".
Для Листинга 14-8 снова импортируем классы QSqlDatabase и QSqlQuery. Также
создадим новый класс QueryExamples и создадим два метода класса:
• createConnection() - устанавливает соединение с базой данных
• exampleQueries() - запрашивает базу данных для получения и изменения
существующих записей.
Листинг 14-8. Создание соединения для класса QueryExamples
# query_examples.py
# Импорт необходимых модулей
import sys
from PyQt6.QtSql import QSqlDatabase, QSqlQuery
class QueryExamples:
def __init__(self):
super().__init__()
self.createConnection()
self.exampleQueries()
366

ГЛАВА 14

ВВЕДЕНИЕ В РАБОТУ С БАЗАМИ ДАННЫХ

def createConnection(self):
"""Создание соединения с базой данных."""
database = QSqlDatabase.addDatabase("QSQLITE")
database.setDatabaseName("files/accounts.db")
if not database.open():
print("Невозможно открыть файл источника данных.")
sys.exit(1) # Код ошибки 1 - означает ошибку
Начнем с добавления базы данных, используя драйвер SQLite 3 и соединение
по умолчанию, поскольку в функции addDatabase() имя соединения не передается.
Далее установим базу данных, созданную в предыдущей программе, accounts.db.
Далее завершим подключение с помощью функции open().
В exampleQueries() в Листинге 14-9 рассмотрим, как использовать класс QSqlQuery
и SQL-команду SELECT для запроса к базе данных.
Листинг 14-9. Демонстрация доступа к базам данных SQL в PyQt
# query_examples.py
def exampleQueries(self):
"""Примеры работы с базой данных."""
# Конструктор QSqlQuery принимает необязательный
# объект QSqlDatabase, который указывает, какое
# соединение с базой данных следует использовать.
# В данном примере мы не указываем никакого соединения,
# поэтому используется соединение по умолчанию.
# При возникновении ошибки функция exec() возвращает false.
# Ошибка затем доступна в виде SqlQuery::lastError()
# Выполнение простого запроса
query = QSqlQuery()
query.exec("SELECT first_name, last_name FROM \
accounts WHERE employee_id > 2000")
# Навигация по набору результатов
while (query.next()):
f_name = str(query.value(0))
l_name = str(query.value(1))
print(f_name, l_name)
Мы создаем новый экземпляр QSqlQuery для поиска имен и фамилий сотрудников,
чьи идентификаторы сотрудников больше 2000.
С помощью этого запроса мы можем использовать значения first_name и last_name
для обновления или удаления записей. Для циклического просмотра результатов
запроса мы используем метод QSqlQuery next(). Другие методы, которые можно
использовать для навигации по результатам, включают next(), previous(), first() и last().
Дополнительные запросы показаны в Листинге 14-10.
ГЛАВА 14

ВВЕДЕНИЕ В РАБОТУ С БАЗАМИ ДАННЫХ

367

Листинг 14-10. Демонстрация вставки, обновления и удаления записей с помощью
SQL и PyQt
# query_examples.py
# Вставка одной новой записи в базу данных
query.exec("""INSERT INTO accounts (
employee_id, first_name, last_name,
email, department, country_id)
VALUES (2134, 'Robert', 'Downey',
'downeyr@job.com', 'Managerial', 1)""")
# Обновление записи в базе данных
query.exec("UPDATE accounts SET department = 'R&D' \
WHERE employee_id = 2134")
# Удалить запись из базы данных
query.exec("DELETE FROM accounts WHERE \
employee_id --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.