GUI интерфейс для ввода данных sqlite в Python - PullRequest
20 голосов
/ 29 июня 2011

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

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

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

Спасибо!

Ответы [ 3 ]

9 голосов
/ 29 июня 2011

Поскольку вы заинтересованы в будущей интеграции с веб-приложением, вы можете рассмотреть возможность использования веб-инфраструктуры Python и локального запуска приложения на своем компьютере, используя веб-браузер в качестве интерфейса.В этом случае одним из простых вариантов будет web2py .Просто загрузите , разархивируйте и запустите, и вы можете использовать сетевую среду 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 и создаст таблицу с именем customer.Он также определяет валидаторы формы для полей «имя» и «электронная почта», поэтому всякий раз, когда эти поля заполняются через форму, записи будут проверяться («имя» не может быть уже в БД, и «электронная почта» должна быть действительнойформат адреса электронной почты) - если проверка не пройдена, в форме будут отображаться соответствующие сообщения об ошибках (которые можно настроить).

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

После того, как вы определили свои модели данных, вы можете использовать CRUD * web2py.Система 1023 * для обработки всех данных ввода и поиска.Просто включите эти две строки (на самом деле, они уже включены в приложение «welcome»):

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

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

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

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

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

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

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

5 голосов
/ 29 июня 2011

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

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

1 голос
/ 29 июня 2011

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

Самое большое преимущество в том, что вы можете использовать довольно интуитивно понятный графический редактор ( Glade ) и автоматическисвязывать обратные вызовы с событиями (если честно, большинство других основных графических инструментов также имеют такую ​​возможность, как, например, QT, но я считаю, что GTK + получает более широкое распространение в сообществе Python).РЕДАКТИРОВАТЬ: дополнительно GTK используется Gnome и многими другими рабочими средами (хотя KDE использует QT).

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


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

Django написан на Python, и вы можете использовать SQLite в качестве бэк-энда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...