Подтвердить что ты не робот

Интерфейс GUI для ввода данных sqlite в Python

Я делаю простую базу данных sqlite для хранения нечувствительной информации о клиенте. Я очень хорошо знаком с python + sqlite и предпочел бы придерживаться этой комбо в этом проекте. Я хотел бы создать простой интерфейс GUI для ввода данных и поиска в базе данных... что-то очень похожее на то, что предоставляет MS Access. Я хочу, чтобы моя жена могла легко вводить/искать данные, поэтому вопросы о стиле PHPmyadmin не могут быть и речи.

Я понимаю, что могу просто сдаться и получить MS Access, но если разумно возможно, просто написать код сам, чтобы он работал на моих компьютерах (* nix) и был гибким (поэтому я могу позже интегрировать его с веб-сайтом приложение и наши смартфоны.)

Можете ли вы, разработчики, рекомендовать какие-либо интерфейсы/пакеты/etc (желательно pythonic), которые могут сделать это с разумной легкостью?

Спасибо!

4b9b3361

Ответ 1

Поскольку вы заинтересованы в дальнейшей интеграции с веб-приложением, вы можете использовать веб-фреймворк Python и запускать приложение локально на своем компьютере, используя ваш веб-браузер в качестве интерфейса. В этом случае одним простым вариантом будет web2py. Просто download, разархивируйте и запустите, и вы можете использовать веб-среду IDE (demo), чтобы создать простое приложение CRUD очень быстро (если вы действительно хотите сохранить его простым, вы можете даже использовать "Мастер новых приложений" (demo), чтобы создайте приложение). Он включает в себя собственный сервер, поэтому вы можете запускать свое приложение локально, как и настольное приложение.

Вы можете использовать web2py DAL (уровень абстракции базы данных) для определения и создания вашей базы данных SQLite и таблиц (без написания SQL). Например:

db = DAL('sqlite://storage.db')

db.define_table('customer',
    Field('name', requires=IS_NOT_IN_DB(db, 'customer.name')),
    Field('address'),
    Field('email', requires=IS_EMAIL()))

Вышеприведенный код создаст базу данных SQLite с именем storage.db и создаст таблицу под названием "клиент". Он также указывает проверки формы для полей "имя" и "электронная почта", поэтому, когда эти поля заполняются через форму, записи будут проверяться ( "имя" уже не может быть в БД, а "email" должно быть действительным формат адреса электронной почты) - если проверка не выполняется, форма отобразит соответствующие сообщения об ошибках (которые могут быть настроены).

DAL также автоматически обрабатывает схему migrations, поэтому, если вы измените определения таблиц, будет обновлена ​​схема базы данных (при необходимости вы можете отключить миграции полностью или на основе таблицы).

После определения ваших моделей данных вы можете использовать систему web2py CRUD для обработки всех записей и поиска данных. Просто включите эти две строки (на самом деле они уже включены в приложение "приветствие" ):

from gluon.tools import Crud
crud = Crud(db)

И в контроллере определите следующее действие:

def data():
    return dict(form=crud())

Это предоставит набор предопределенных URL-адресов, которые позволят вам создавать, просматривать, просматривать, просматривать, обновлять и удалять записи в любой таблице.

Конечно, если вам не нравится какое-либо поведение по умолчанию, существует множество способов настройки форм/отображений CRUD или вы можете использовать некоторые формы функциональности для создания полностью настраиваемого интерфейса. И web2py - это полнотекстовая инфраструктура, поэтому вам будет легко добавить функциональность в ваше приложение, когда ваши потребности будут расширяться (например, управление доступом, уведомления и т.д.).

Примечание. Web2py не требует установки или настройки и не имеет зависимостей, поэтому очень просто распространять ваше приложение на других машинах - просто застегните всю папку web2py (которая будет содержать папку с вашим приложением) и разархивируйте ее на другой машине, Он будет работать на * nix, Mac и Windows (в Windows вам либо потребуется установить Python, либо загрузить двоичный файл web2py Windows вместо исходной версии - двоичный файл Windows включает в себя собственный интерпретатор Python).

Если у вас есть какие-либо вопросы, есть очень полезный и отзывчивый список рассылки. Вы также можете получить некоторые идеи от некоторых существующих приложений web2py.

Ответ 2

В то время как не программа python, SQLite Manager является очень популярным графическим интерфейсом с открытым исходным кодом для SQLite. Я очень рекомендую его, работает на любой платформе (Mac, Linux, Windows) в качестве расширения Mozilla Firefox. Вы можете получить его на надстройке Mozilla Firefox

Может показаться странным использовать расширение Firefox для управления вашей базой данных, но это просто использует инфраструктуру графического интерфейса, встроенную в Firefox, чтобы сделать отличное приложение для управления SQLite.

Ответ 3

Я обычно использую GTK +, который хорошо документировал привязки Python.

Самое большое преимущество заключается в том, что вы можете использовать довольно интуитивно понятный графический редактор (Glade) и автоматически связывать обратные вызовы с событиями (если честно большинство других основных графических инструментариев имеют такую ​​возможность, как, например, QT, но я считаю, что GTK + пользуется более широким внедрением в сообществе Python). EDIT: дополнительно GTK используется Gnome и многими другими средами рабочего стола (KDE использует QT, хотя).

Тем не менее, если все, что вам нужно, это просто вставка данных от доверенного лица, вы можете использовать что-то уже сделанное, например SQLite manager (it плагин FireFox).


Радикально альтернативное решение: используйте django, и вы можете буквально перейти от чтения учебника к своему приложению в течение нескольких часов, включая аутентификацию пользователя, внутренний административный интерфейс и т.д. (ваш проект именно то, что я сделал с ним, чтобы моя жена вносила расходы в наш семейный бюджет).

Django написан на Python, и вы можете использовать SQLite как фоновый.