Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Une appli de bdd en Python

16 réponses
Avatar
Sébastien Kirche
Bonsoir,

j'ai un projet d'application utilisant une base de données SQL. Je
souhaite faire l'interface utilisateur sur une base de python. Je
souhaite également que l'application puisse fonctionner sous win, mac et
si possible linux ce qui me semblait plaider en faveur de wxpython.

Mon problème c'est que je me perds dans la jungle des frameworks et
autres possibilités de développement pour python en matière d'interface
graphique et de bdd.

J'ai défini un schéma de base sur un PostgreSQL aussi je souhaiterais
pouvoir m'interfacer avec ce moteur mais j'ai un peu joué avec gadfly
pour découvrir et ça pourrait aussi convenir pour un proto, je n'utilise
plus les fonctions avancées de base que j'avais envisagé (héritage de
table).

J'ajoute que je souhaite faire en priorité une application locale, mais
j'envisage aussi de faire une application web. Soit une version
simplifiée de consultation de la base ou pourquoi pas une version web de
l'appli, je ne sais pas les possibilités qui peuvent exister.

Ce soir je viens juste de tomber sur Dabo (http://dabodev.com/about) qui
est un framework (encore un) de dev 3 tiers qui s'appuie sur wxpython.
Intéressant mais encore incomplet.

Existe-t-il un répertoire des frameworks existant sur ce thème ? Avez
vous des conseils sur la question ? Comment faites-vous pour savoir ce
qui existe dans le domaine, vous essayez toutes les nouveautés ? Et
comment miser le bon cheval qui va évoluer et pas sur un des nombreux
projets qui démarre puis s'éteint ?

Merci de vos zavis zéclairés.
--
Sébastien Kirche

10 réponses

1 2
Avatar
Eric Jacoboni
Sébastien Kirche writes:

j'ai un projet d'application utilisant une base de données SQL. Je
souhaite faire l'interface utilisateur sur une base de python. Je
souhaite également que l'application puisse fonctionner sous win, mac et
si possible linux ce qui me semblait plaider en faveur de wxpython.
(...)

J'ajoute que je souhaite faire en priorité une application locale, mais
j'envisage aussi de faire une application web. Soit une version
simplifiée de consultation de la base ou pourquoi pas une version web de
l'appli, je ne sais pas les possibilités qui peuvent exister.


Euh... ce serait moi, je ne m'emmerderais pas avec une interface
graphique et les problèmes de portabilité qui vont avec (bon courage
pour en trouver une qui marche *bien* en natif sur les 3 systèmes que
tu as cité). Bref, j'attaquerai d'entrée par une interface web. Faire
tourner un ch'ti serveur web dédié, c'est pas la mort. Quelque
feuilles de style et tu auras un look qu'il te faudra beaucoup plus de
temps à avoir avec un toolkit. Bon, évidemment, il faudra lancer un
navigateur.

Merci de vos zavis zéclairés.


Ce serait encore moi, je me ferai ça en Rails parce que Rails ça tue
sa race, mais, bon, peut-être qu'il existe des frameworks aussi
commodes en Python...

--
Eric Jacoboni, ne il y a 1455751107 secondes

Avatar
William Dode
On 07-07-2006, Eric Jacoboni wrote:
Sébastien Kirche writes:

j'ai un projet d'application utilisant une base de données SQL. Je
souhaite faire l'interface utilisateur sur une base de python. Je
souhaite également que l'application puisse fonctionner sous win, mac et
si possible linux ce qui me semblait plaider en faveur de wxpython.
(...)

J'ajoute que je souhaite faire en priorité une application locale, mais
j'envisage aussi de faire une application web. Soit une version
simplifiée de consultation de la base ou pourquoi pas une version web de
l'appli, je ne sais pas les possibilités qui peuvent exister.


Euh... ce serait moi, je ne m'emmerderais pas avec une interface
graphique et les problèmes de portabilité qui vont avec (bon courage
pour en trouver une qui marche *bien* en natif sur les 3 systèmes que
tu as cité). Bref, j'attaquerai d'entrée par une interface web. Faire
tourner un ch'ti serveur web dédié, c'est pas la mort. Quelque
feuilles de style et tu auras un look qu'il te faudra beaucoup plus de
temps à avoir avec un toolkit. Bon, évidemment, il faudra lancer un
navigateur.


Moi zossi


Merci de vos zavis zéclairés.


Ce serait encore moi, je me ferai ça en Rails parce que Rails ça tue
sa race, mais, bon, peut-être qu'il existe des frameworks aussi
commodes en Python...



Je viens d'essayer django, je ne sais pas ce que ça donnera au final
mais en tout cas pour prototyper c'est vraiment génial, on défini le
modèle de la BDD en python et ensuite il cré automatiquement les tables
(y compris les jointures !) dans postgresql (mysql ou sqlite) et les
formulaires de saisie (avec recherche, filtre, jointure, gestion des
droits...).
C'est impressionnant, il suffit de lire une fois le tutorial pour
commencer à s'amuser, y en a pour quelques minutes.

J'ai pas été plus loin pour l'instant...

--
William Dodé - http://flibuste.net


Avatar
Michel Claveau
Bonjour !

peut-être qu'il existe des frameworks aussi commodes en Python


Peut-être Turbogears ou Django ? (entre autres)

Ou construire qq chose à partir de CherryPy, Alchemy ou SQLobject ;
avec, éventuellement, Cheetah et/ou d'autre trucs.

En fait, de nombreux outils existent, et Python facilite l'intégration.

Le plus problématique, AMHA, c'est le temps qu'il faut passer, pour
évaluer et faire son choix.


--
@-salutations

Michel Claveau

Avatar
Sébastien Kirche
Le 7 July 2006 à 23:24, Eric Jacoboni a dit :

Euh... ce serait moi, je ne m'emmerderais pas avec une interface
graphique et les problèmes de portabilité qui vont avec (bon courage
pour en trouver une qui marche *bien* en natif sur les 3 systèmes que
tu as cité). Bref, j'attaquerai d'entrée par une interface web. Faire
tourner un ch'ti serveur web dédié, c'est pas la mort. Quelque
feuilles de style et tu auras un look qu'il te faudra beaucoup plus de
temps à avoir avec un toolkit. Bon, évidemment, il faudra lancer un
navigateur.


Mon problème avec les applis web c'est que j'ai bossé
professionnellement sur une pendant presque 2 ans (Sql Serveur + IIS +
ASP + vbscript). C'était très intéressant mais c'était aussi super
ch*ant par certaines des contraintes qui nous étaient imposées :
- html 3.2 pour être compatible IE4 / Netscape 4 et IE Mac donc aucune
fioriture possible de dhtml ou autre
- pas de débogeur pour tester l'appli, trace dans fichier ou en insérant
les données à tracer dans les pages retournées au client

Et quand je vois les pirouettes qu'il fallait employer parce que
beaucoup de fonctionnalités html ne fonctionnaient pas pareil ou mal
entre les navigateurs... Je me dis que ça ne marchait pas non plus bien
entre les différentes plate-formes...

Maintenant j'ai peut-être eu une mauvaise expérience dans le domaine. Si
vous avez des suggestions, je suis preneur quand même.

Merci de vos zavis zéclairés.


Ce serait encore moi, je me ferai ça en Rails parce que Rails ça tue
sa race, mais, bon, peut-être qu'il existe des frameworks aussi
commodes en Python...


Pourquoi pas ? Mais c'est pour une appli web ou locale ?

J'ai déjà installé le langage sur mon poste et voté favorablement à la
création du groupe francophone. Tu n'as pas de traduction en cours sur
le sujet ? ;)

Mais je ne voudrais pas lancer une nouvelle guerre de religion :)

--
Sébastien Kirche


Avatar
Gressier
Bonjour,

J'ai développé une grosse application écrite en Prolog pour l'essentiel.
L'interface est en vb (le projet avait démarré en 93). J'y ai intégré
de nouvelles fonctionnalités en Python ces derniers temps en créant des
objets COM. La facilité de développement de ces dll avec Python et sa
gigantesque bibliothèque d'utilitaires disponibles m'a fait apprécier ce
langage. (A l'origine je suis Lispien :-) )

Je dois porter l'ensemble sous Linux. Cela fait un moment que je cherche
moi aussi un environnement multiplateforme.

Je pense faire le choix de FreePascal dans l'environnement Lazarus.
C'est un RAD, un clone de Delphi, libre et gratuit. Bien sûr il y a la
lourdeur syntaxique du Pascal mais si on se contente de s'en servir pour
l'interface, c'est supportable. Je dois bien entendu produire un peu de
colle pour y intégrer mon Prolog.

Tout ce que j'avais écrit en Python devrait aussi passer sans
problème.... quoique... c'est justement la partie que je n'ai pas encore
étudiée. Je remplacerai mes .dll par des .so et cela devrait aller.

En espérant avoir été utile.

J.Gressier
Avatar
Franssoa
Euh... ce serait moi, je ne m'emmerderais pas avec une interface
graphique et les problèmes de portabilité qui vont avec (bon courage
pour en trouver une qui marche *bien* en natif sur les 3 systèmes que
tu as cité). Bref, j'attaquerai d'entrée par une interface web.


J'ai réfléci a un pb similaire.

Une appli web c'est très bien, j'aime ça, je voudrai en faire une pour
gérer mes contacts + calendrier.

Mais j'ai rencontré un problème en utilisation uniquement locale :
l'utilisateur exécute l'appli qui lance le serveur web (eventuellement
sql) et le navigateur. Il fait ses petit choses, et quitte, comme tous
les utilisateurs, "très proprement" en fermant la fenêtre du navigateur
et bien sur pas par le bouton quitter. Résultat, on se retrouve avec un
serveur web (+sql) qui tournent en fond. D'ou problème d'utilisation de
ressources et problème si l'utilisateur relance une deuxième fois l'appli...

Franssoa

Avatar
Eric Jacoboni
Sébastien Kirche writes:

- pas de débogeur pour tester l'appli, trace dans fichier ou en insérant
les données à tracer dans les pages retournées au client


Je ne sais pas pour les autres frameworks, mais Rails a un débogueur
(et je ne cause pas des tests unitaires et tout le tremblement)

Pourquoi pas ? Mais c'est pour une appli web ou locale ?


Comme je l'ai dit, pour moi ça ne change rien : une appli locale, on
peut voir ça comme une appli web qui tourne sur un serveur local
(d'ailleurs, en phase de développement, c'est bien comme ça qu'on
fait).

J'ai déjà installé le langage sur mon poste et voté favorablement à la
création du groupe francophone. Tu n'as pas de traduction en cours sur
le sujet ? ;)


Le bouquin sur Rails a été traduit en Français par Eyrolles et, si, je
suis sur une traduc en cours (mais pas uniquement sur Rails).

Mais je ne voudrais pas lancer une nouvelle guerre de religion :)


Meuh non... Comme on l'a dit dans un autre post, il existe des
frameworks équivalents en Python si tu préfères ce langage.

Mon post était surtout motivé par cette histoire de choix interface
graphique/interface web
--
Eric Jacoboni, ne il y a 1455791916 secondes

Avatar
Olivier
Hello,

Une appli web c'est très bien, j'aime ça, je voudrai en faire une pour
gérer mes contacts + calendrier.

Mais j'ai rencontré un problème en utilisation uniquement locale :
l'utilisateur exécute l'appli qui lance le serveur web (eventuellement
sql) et le navigateur. Il fait ses petit choses, et quitte, comme tous
les utilisateurs, "très proprement" en fermant la fenêtre du navigateur
et bien sur pas par le bouton quitter. Résultat, on se retrouve avec un
serveur web (+sql) qui tournent en fond. D'ou problème d'utilisation de
ressources et problème si l'utilisateur relance une deuxième fois
l'appli...



Quelle différence fais-tu entre la sortie du navigateur par le bouton
quitter et la fermeture de la fenêtre ?


Un serveur web et une base de donnée (bon, pas Oracle, hein...) qui ne
font rien ne devraient pas prendre beaucoup de ressources... Pour le
problème de l'appli lancé deux fois, il suffit de faire dans ton script
de lancement qq chose du genre :

try:
start_server()
except port_not_free:
pass
webbrowser.open("http://localhost")




Ceci dit, je rêve d'un vrai moteur html + javascript + css dans un
framework genre wxPython, qui permettrait de convertir à peu de frais un
serveur web en application...


Olivier

Avatar
Olivier

Ceci dit, je rêve d'un vrai moteur html + javascript + css dans un
framework genre wxPython, qui permettrait de convertir à peu de frais un
serveur web en application...



Je me réponds à moi-même, il y a justement un thread là-dessus sur
comp.lang.python (wx Browser-objekt for python on Linux):


Olivier

Avatar
Michel Claveau
Bonsoir !

je rêve d'un vrai moteur html + javascript + css dans un framework


à mes moments perdus, je travaille un truc dans ce genre. Le framework
étant intégré aux applications.
Mais j'ai fais des choix très particuliers, car l'interconnexion entre
html/javvascript/css et python est faite par de multiples liens COM
(typiquement, pour un écran, j'ai entre une vingtaine et un millier de
liens).

--
@-salutations

Michel Claveau

1 2