Base de données et interface en Python

Bonjour,

Voila, je dois créer une base de données, du genre carnet d’adresses, accessible depuis tous les postes d’un réseau local, avec une jolie interface utilisateur pour: créer, supprimer, modifier, envoyer des requêtes, imprimer des états, extraire des données au format excel pour faire des mailings avec word etc …

Tous le monde est sous XP ou Vista et le serveur est un Windows 2003

Je suis libre de choisir les outils (langage + base de données) pourvu que ça ne coute rien de plus que le temps passé à développer ! :wink:

Pensez-vous que je fais le bon choix :

  • Base de données: Firebird (un clone gratuit d’Interbase)
  • Langage pour développer l’interface graphique : Python + une librairie , mais je n’ai pas encore quelle librairie prendre pour avoir une interface la plus simple à développer et jolie possible (c’est à dire qu’elle colle visuellement le plus à XP).
  • Pour ce qui est du driver pour Python pour contrôler Firebird, je n’ai trouvé que KInterbasDB, qui semble être abandonné, mais je n’en n’ai pas trouvé d’autre. En connaissez-vous ?

Sinon auriez-vous d’autre suggestion pour développer simplement et plutôt en open Source, un tel logiciel ?

Merci d’avance pour vos conseils

Doudy
Edité le 01/06/2009 à 22:19

Tu fait forcément le bon choix si tu choisis Python.

Pour les libs, j’ai pas compris ce que tu veux faire. Si c’est une appli web, il y a le framework django ( www.djangoproject.com… ) dont on ne me dit que du bien. Si tu veux une bonne vieille interface lourde, tu peux utiliser les bonding Qt qui existent pour toutes les plate-formes.

Pour la base, j’ignore les état des connecteurs vers Firebird, mais toutes les autres existent. MySQL ou PostgreSQL marchent très bien. SQLite aussi, mais c’est autre chose. Par contre… Pour faire un gestionnaire de carnet d’adresses… C’est une base qu’il te faut ou un serveur LDAP ?

Merci Martopioche pour ta réponse.

Je souhaiterais développer une application client / serveur avec une interface utilisateur pour accéder aux opérations sur la base (créer, modifier, supprimer, requêtes etc …), donc en effet Django n’est pas approprié à cela.
Pour ce qui est du choix d’une librairie graphique pour Python - pour que l’interface utilisateur colle le plus possible au look de l"OS ( XP, Vista) je ne sais pas trop: soit wxPython , soit pyQt - j’ai lu que Qt était maintenant libre (depuis mars 2009) et gratuit même pour une utilisation commerciale … ? Est-ce exact ?

Pour le choix de la base de données, je serais tenté par PostgreSQL car elle possède la fonctionnalité de recherche full texte qui m’est nécessaire et que je ne trouve ni dans Firebird, ni dans MySQL. Toutefois, comme je dois installer cette base sur un serveur Windows Server 2003 (je n’ai pas le choix :frowning: ), on m’a déconseillé d’utiliser PostgreSQL (même les dernières versions 8.x en binaire natif Windows) qui ne serait pas du tout performant sous l’OS de Microsoft, alors que sous Linux ce serait très bien. Pourrais-tu me confirmer cette perte de perf sous Windows (info ou intox) ?

Enfin, j’ai jeté un œil sur les bases LDAP spécialisées dans la gestion des annuaires (carnet d’adresses etc ), mais j’avoue ne pas avoir compris grand chose. Et puis , en plus du carnet d’adresses, sur le même réseau, je dois développer une base pour gérer des catalogues d’exposition avec dans champs blob énormes, et donc LDAP ne serait pas approprié … alors autant utiliser le même moteur de base de données pour les 2 applications.

Merci d’avance pour l’aide. :slight_smile:

Doudy
Edité le 03/06/2009 à 12:03

Alors…

Oui et non. Si oui, tu fait un clone de PhpMyAdmin… Après, c’est toi qui voit ce que tu veux faire, souhait de l’utilisateur, tout ça tout ça…

Mouaip… Coller au l&f de l’Os… Disons pas trop s’en éloigner. Qt a des l&f paramétrables il me semble, donc ça devrait aller. Pour la licence, j’en suis resté à la double licence GPL/commerciale, donc j’en sais rien.

Pareil, j’ignore si il y a des baisses de perf sous 2003 ou non. Après, tout est relatif, si la baisse de perf n’est visible qu’à partir de 5 To de données… Par contre, pour MySQL, dev.mysql.com… c’est pas bon ?

De toutes manières, produit ton application en essayant de découpler la connexion à la BDD. Ensuite teste avec une base et si besoin, bah change…

Merci.

A propos du découplage de la connexion à la base de données (ORM), je suis tombé sur la bibliothèque SQLAlchemy pour faire un mapping objet. D’après ce que j’ai compris: le code devient complètement indépendant de la BDD, c’est très intéressant pour une évolution de l’application vers une autre BDD. Connais-tu SQLAlchemy ?
Edité le 03/06/2009 à 12:35

Non. Les frameworks de persistance Python je ne les connais pas.