Рубрики
Без рубрики

WXPYPHON и SQLALCHEMY: Загрузка случайных баз данных SQLite для просмотра

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Я недавно связался о том, были ли здесь какие-либо приложения WXPYPHON здесь, которые могут представить базу данных SQLite. Как я понял, они хотели, чтобы иметь возможность интраспределить базу данных и просмотреть таблицы, возможно, используя виджет WX.GRID.GRID. Я нахожу виджета сетки быть очень мощным, а также довольно сложно использовать. Поэтому я провел некоторое время, написал супер простое приложение, которое использует ObjectListView виджет вместо этого.

Начиная

Во-первых, нам нужна база данных для тестирования. Поэтому я закончил кодировать простую сценарий создания базы данных с SQLalchemy, который заполняет пару столов с парой рядов. Вот сценарий, который я использую:

Я собираюсь предположить, что вы понимаете Sqlalchemy достаточно хорошо, чтобы следовать за этим. Если нет, у них есть некоторые из Лучшая документация любого проекта Python, который я когда-либо использовал.

Создание зрителя

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

Давайте проведем немного времени, разбив, как это работает. Вы заметите, что после того, как мы создаем виджет ObjectListView, мы скрываем его, так как мы пока не знаем, что в нее идет. Это не произойдет, пока пользователь не нажимает Загрузить БД кнопка. В loaddatabase Обработчик, мы всплываем диалоговое окно файла, чтобы позволить пользователю выбирать файл базы данных SQLite, который они хотят загрузить. Для этого теста я бы порекомендовал использовать базу данных, которую мы создали ранее. После этого выберите, мы создаем двигатель SQLALCHEMY, вытащите от него названия таблиц, установите падение Combobox в список таблиц, а затем загрузить первый стол в списке, позвонив нашему Загрузите метод.

В LastTable мы используем удобное sqlalchemy Автозагрузка Функция «отражать» данные из базы данных в таблицу объект. Мы называем Clear_Mappers Потому что нам нужно убедиться, что в настоящее время ничто не сопоставлено на наш класс для фиктивного класса, а затем мы рассмотрим нашу новую таблицу в класс. Наконец мы создаем сеанс SQLALCHEMY и простую Выберите *

Запрос, чтобы потянуть все записи из базы данных и пропустите их в виджете объектаListView, который мы затем показываем.

Упаковка

Я попытался запустить этот скрипт против базы данных Mozilla Moders, но мое маленькое приложение не понравилось. Не стесняйтесь пытаться разбить его с вашими базами данных. В настоящее время это только доказательство концепции. Я думал о чем-то похожее на это сам год назад, и я могу попытаться улучшить это немного в будущем. В то же время я хотел опубликовать свой первый проект и посмотреть, какую обратную связь я могу получить. Я надеюсь, вам понравится это! Примечание. Проверено на Windows 7, WxPython 2.8.12.1 с Python 2.6.6

SQLALCHEMY, Отражение, Различные брюки и столовые/Столовые Нечувствительность Чехол

  • Исходный код