Interface GUI pour la saisie de données sqlite en Python

je suis en train de créer une base de données sqlite simple pour stocker des informations client non sensibles. Je suis très familier avec python+sqlite et préférerais rester avec ce combo sur ce projet. Je voudrais créer une interface simple GUI pour la saisie de données et la recherche de la base de données... quelque chose de très similaire à ce que MS Access fournit. Je veux que ma femme soit capable d'entrer/rechercher des données facilement, donc les choses de style PHPmyadmin sont hors de question.

je comprends que je pourrais juste donner Dans et obtenir L'accès MS, mais si raisonnablement possible préférerait écrire le code moi-même de sorte qu'il fonctionnera sur mes ordinateurs (*nix) et est flexible (de sorte que je peux plus tard l'intégrer avec une application web et nos téléphones intelligents.)

est-ce que les développeurs peuvent recommander des interfaces/paquets/etc (de préférence pythonic) qui peuvent accomplir ceci avec une facilité raisonnable?

Merci!

19
demandé sur Tony Toews 2011-06-29 04:55:57

3 réponses

puisque vous êtes intéressé par une future intégration avec une application web, vous pourriez envisager d'utiliser un framework web Python et d'exécuter l'application localement sur votre machine, en utilisant votre navigateur Web comme interface. Dans ce cas, une option simple serait web2py. télécharger, décompressez, et lancez, et vous pouvez utiliser L'IDE basé sur le web (démo) pour créer une application simple CRUD très rapidement (si vous voulez vraiment le garder simple, vous pouvez même utiliser la " nouvelle application l'assistant" (démo) pour construire l'application). Il comprend son propre serveur, de sorte que vous pouvez exécuter votre application en local, tout comme une application de bureau.

Vous pouvez utiliser le web2py DAL (couche d'abstraction de base de données) pour définir et créer votre base de données et vos tables SQLite (sans écrire de SQL). Par exemple:

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()))

le code ci-dessus va créer une base de données SQLite appelée storage.db et créer une table appelée "client". Il spécifie également les validateurs de forme pour le 'nom' et les champs 'email', ainsi chaque fois que ces champs sont remplis via un formulaire, les entrées seront validées ('nom 'ne peut pas déjà être dans la base de données, et' email ' doit être un format d'adresse email valide) -- si la validation échoue, le formulaire affichera des messages d'erreur appropriés (qui peuvent être personnalisés).

Le DAL prendra également en charge le schéma migrations automatiquement, donc si vous changez les définitions de vos tables, le schéma de la base de données sera mis à jour (si nécessaire, vous pouvez désactiver les migrations complètement ou sur une base par table).

une fois que vous avez défini vos modèles de données, vous pouvez utiliser CRUD système pour gérer toutes les entrées de données et la recherche. Il suffit d'inclure ces deux lignes (en fait, elles sont déjà incluses dans l'application' welcome'):

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

et dans un controller, définissez l'action suivante:

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

qui exposera un ensemble d'URL prédéfinies qui vous permettront de créer, lister, rechercher, voir, mise à jour et de supprimer des enregistrements dans une table.

bien sûr, si vous n'aimez pas certains comportements par défaut, il y a beaucoup de façons de personnaliser les formes/affichages CRUD, ou vous pouvez utiliser certains autres fonctionnalité des formulaires pour construire une interface complètement personnalisée. Et web2py est un framework full-stack, il sera donc facile d'ajouter des fonctionnalités à votre application au fur et à mesure que vos besoins s'étendent (par exemple, contrôle d'accès, notifications, etc.).

Note, web2py ne nécessite pas installation ou configuration et n'a pas de dépendances, il est donc très facile de distribuer votre application à d'autres machines -- il suffit de fermer le dossier web2py entier (qui inclura votre dossier app) et de le décompresser sur une autre machine. Il fonctionnera sur *nix, Mac, et Windows (sur Windows, vous aurez besoin d'installer Python ou de télécharger le web2py Windows binaire au lieu de la version source -- le binaire Windows inclut son propre interpréteur Python).

Si vous avez des questions, il y a un très disponible et très réactive liste de diffusion. Vous pouvez également obtenir quelques idées de certains applications web2py.

9
répondu Anthony 2011-06-29 15:15:15

bien que ce ne soit pas un programme python, SQLite Manager est une interface GUI open source très populaire pour SQLite. Je le recommande vivement, fonctionne sur n'importe quelle plate-forme (Mac, Linux, Windows) comme une extension Mozilla Firefox. Vous pouvez l'obtenir sur le Mozilla Firefox Add-On Site

cela peut sembler étrange d'utiliser une extension Firefox pour gérer votre base de données, mais cela ne fait que mettre à profit le cadre GUI intégré dans Firefox pour faire une application de gestion SQLite.

4
répondu Mister_Tom 2014-02-21 21:02:05

j'utilise normalement GTK+ qui a bien documenté fixations Python.

le plus grand avantage est que vous pouvez utiliser un éditeur de GUI assez intuitif ( Glade) et lier automatiquement les callbacks à des événements (pour être honnête, la plupart des autres toolkits graphiques majeurs ont cette possibilité aussi, comme par exemple QT, mais ma perception est que GTK+ bénéficie d'une adoption plus large dans la communauté Python). EDIT: en outre GTK est utilisé par Gnome et de nombreux autres environnements de bureau (KDE utilise QT).

cela dit, si tout ce que vous avez besoin est vraiment juste l'insertion de données d'une personne de confiance, vous pourriez utiliser quelque chose déjà fait comme SQLite manager (c'est un plugin FireFox).


solution radicalement alternative: utiliser django et vous pouvez littéralement passer de la lecture du tutoriel pour avoir votre application en marche dans une question d'heures, y compris les authentifications de l'utilisateur, interface etc. (votre projet est exactement ce que j'ai fait avec elle pour permettre à ma femme d'insérer des dépenses dans notre budget familial).

Django est écrit en Python et vous pouvez utiliser SQLite comme back-end.

1
répondu mac 2011-06-29 01:19:07