IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

comment creer des interfaces ou applications avec python reliées avec une base de donnée postgresql ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Archéologue
    Inscrit en
    Novembre 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Archéologue

    Informations forums :
    Inscription : Novembre 2017
    Messages : 67
    Par défaut comment creer des interfaces ou applications avec python reliées avec une base de donnée postgresql ?
    bonjour
    je ne sais si je peux demander des conseils ici ou le cas échéant veuillez m'indiquer svp ou je peux en demander ?
    j'aimerai marier le langage python avec une base de donnée postgrsql partagée avec membres de mon institut en suivant un petit cahier des charges :
    - créer différents types d'interfaces, listes, formulaires, tableaux, dont une se rapprochant de googlesheets, mais googlesheets permet difficilement de combiner les droits sur des colonnes ou rangées et les utilisations graphiques, surtout en matière de personnalisation de son interface comme laisser à l'utilisateur le choix des colonnes, les ordonner selon son souhait, des tris, de la personnalisation automatique (format conditionnel) ou manuelle des cellules et contenus, déplacer des lignes manuellement, tout en gérant des droits d'accès à certaines données, ajouter des boutons et autres actions de scripts, créer des tableaux de synthèse, des graphiques...
    - pouvoir scripter des actions, notamment copier/lire/écrire/zipper/déplacer des fichiers ou dossiers locaux ou distants...
    Donc comment m'y prendre ?
    Y a-t-il des applications libres ou interfaces existantes de ce type ?
    Ou alors dois-je créer une interface web ou une desktop application à diffuser avec des mises à jour ou une application commune accessible sur serveur ?

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Déjà tu ne t'es pas trompé de forum. C'est bien une question Python à la base. Si plus tard tu as des soucis de requêtage SQL ok il te faudra aller ailleurs mais pour ta question actuelle c'est bien ici.

    Il te faudra séparer deux opérations
    1. afficher tes éléments, les menus, les boutons. Python possède pour ça une petite librairie "tk" assez modeste, ou bien on peut lui interfacer la librairie Qt ultra puissante mais faut l'installer au préalable (module PyQt6).
    2. associer chaque action à un accès bdd. PostgreSQL est un très bon choix mais il te faut installer la librairie PsycoPG2 qui te donnera des objets Python permettant de t'y connecter et lui passer des ordres SQL


    Dans tous les cas c'est un assez gros truc. Il te faudra créer l'IHM puis associer les actions de l'IHM aux actions bdd. Plus les étapes d'authentifications éventuelles (si par exemple l'accès à l'appli est subordonné à être connu de la bdd). Ce n'est pas un truc qu'on fait en 10mn sur un coin d'ordi...

    Ici un petit exemple d'initiation PyQt...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Bonjour

    Ta question me fait penser que tu es débutant ? Si oui, ce cahier des charges me parait sans doute démesuré.
    Que l'on utilise postgresql ou une autre BD ne change rien en python.
    Citation Envoyé par EPINRAP Voir le message
    dois-je créer une interface web ou une desktop application ?
    L'un ou l'autre (selon ton choix et différents os dans entreprise) mais les 2 n'utilisent pas du tout les mêmes technologies.
    Pour le web,
    on utilise généralement django ou flask comme bibliothèque. Avec django, on n'utilise pas sql mais le ORM de cette bibliothèque (donc un truc supplémentaire à apprendre).
    En plus de python il y a une grosse partie en javascript, ici existe 36 bibliothèques différentes.

  4. #4
    Membre confirmé
    Homme Profil pro
    Archéologue
    Inscrit en
    Novembre 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Archéologue

    Informations forums :
    Inscription : Novembre 2017
    Messages : 67
    Par défaut
    Bonjour et merci à tous deux.
    Donc à ce que je comprends cet objectif peut être réalisé des deux façons applicative ou web.
    Dans le premier cas la bibliothèque pyQt semble adaptée et Dlango ou Flask pour l'autre.
    Mais utiliser Django ou flask implique l'apprentissage ou la combinaison de plusieurs langages propres à Django et au web, donc paraitrait plus lourd en investissement temps c'est ça ?

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par EPINRAP Voir le message
    Mais utiliser Django ou flask implique l'apprentissage ou la combinaison de plusieurs langages propres à Django et au web, donc paraitrait plus lourd en investissement temps c'est ça ?
    Tout sera très lourd de toute façon. Du coté desktop il te faudra apprendre ce qu'est une IHM, ses principes généraux, puis les spécifications Tk ou Qt selon celle que tu choisis (et ce ne sont d'ailleurs pas les seuls choix possibles, juste les plus courants).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Citation Envoyé par EPINRAP Voir le message
    bonjour
    - créer différents types d'interfaces, listes, formulaires, tableaux, dont une se rapprochant de googlesheets, mais googlesheets permet difficilement de combiner les droits sur des colonnes ou rangées et les utilisations graphiques, surtout en matière de personnalisation de son interface comme laisser à l'utilisateur le choix des colonnes, les ordonner selon son souhait, des tris, de la personnalisation automatique (format conditionnel) ou manuelle des cellules et contenus, déplacer des lignes manuellement, tout en gérant des droits d'accès à certaines données, ajouter des boutons et autres actions de scripts, créer des tableaux de synthèse, des graphiques...
    Si on part sur une solution web: ça implique pas mal de Javascript côté client. On peut s'appuyer sur des libs et frameworks comme jquery pour simplifier le travail.
    Pour la partie backend, Django ou Flask avec un ORM comme SQL Alchemy. Du classique.
    Pour la visualisation de données sous forme de tableau avec JS il y a: https://www.datatables.net/
    Ca permet de filtrer, trier etc et normalement de faire des mises à jour aussi, dans ce cas il faut prévoir sans doute de coder des fonctions de callback, je n'ai pas été jusque-là mais c'est à investiguer.

    On peut aussi créer des interfaces graphiques plus élaborées sur le client avec TK ou QT, dans ce cas on se rapproche d'un client lourd. Mais le choix est plus vaste en termes de contrôles UI. Par contre, je sens qu'il y aura beaucoup plus de code à produire pour arriver au résultat désiré.
    C'est un peu difficile de trancher, il faut bien analyser le cahier des charges mais aussi évaluer les besoins futurs, car l'application va probablement évoluer, des nouveaux besoins vont se présenter. Et il faut que la solution technologique choisie soit suffisamment flexible.

    Avant de réinventer la roue, cherchez ce qui existe déjà. Il y doit exister un certain nombre de libs, packages sous licence libre, sur lesquelles vous pouvez vous appuyer. Je doute que vous allez tout coder de A à Z, ça n'a pas forcément une grande valeur ajoutée.

    Je n'aime pas dire cela, mais si vous utilisez déjà Google sheets dans votre organisation, essayer d'en tirer le meilleur parti quitte à scripter, utiliser des API fournies etc. Peut-être qu'avec un peu d'effort il y a moyen de combler les besoins qui manquent aujourd'hui, et que ce serait au final un meilleur investissement en temps et ressources.

    Ce genre de projet est relativement ambitieux et ça peut facilement devenir un projet sans fin, surtout quand le cahier des charges est "élastique".

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par EPINRAP Voir le message
    Donc comment m'y prendre ?
    Si vous saviez programmer, vous auriez acquis le b.a.ba sur les interfaces graphiques et les bases de données pour avoir la réponse à vos questions.
    Prenez du recul: si votre projet correspond à un minimum de besoins, le cahier des charges évoluera au fur et à mesure que l'application deviendra "visible" et donnera aux utilisateurs de quoi exprimer leurs/d'autres besoins.

    Part à vouloir réaliser quelque chose de conséquent qui aura tendance à grossir n'est pas un travail que des débutants peuvent mener à bien: faites vous aider par des professionnels.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre confirmé
    Homme Profil pro
    Archéologue
    Inscrit en
    Novembre 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Archéologue

    Informations forums :
    Inscription : Novembre 2017
    Messages : 67
    Par défaut
    Bonjour wiztricks et merci pour le conseil,
    Je suis un autodidacte invétéré qui aime maitriser ses univers et créer.
    Alors je n'hésiterai pas à apprendre, quitte à changer d'univers et donc éventuellement à faire des erreurs aussi qui font partie de l'apprentissage.
    Et c'est pour ça que je demande conseil aussi.
    merci en tous cas c'est sympa !

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par EPINRAP Voir le message
    Je suis un autodidacte invétéré qui aime maitriser ses univers et créer.
    Essayez d'apprendre par vous-même ne fait pas de vous un autodidacte (qui est celui qui a appris sans enseignant... et qui sait).

    Citation Envoyé par EPINRAP Voir le message
    Alors je n'hésiterai pas à apprendre, quitte à changer d'univers et donc éventuellement à faire des erreurs aussi qui font partie de l'apprentissage.
    Et c'est pour ça que je demande conseil aussi.
    Je ne connais pas vos disponibilités mais vous avez plusieurs semaines d'apprentissage ne serait-ce que côté outils et un stage à trouver chez un professionnel pour apprendre à programmer "pour de vrai".

    Si vous n'avez pas ce temps ou la volonté d'y passer autant de temps, il vaut mieux renoncer ou faire faire.

    Pour le reste, c'est votre projet...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [VB.NET] application avec une base de donnée - quelles options ?
    Par wabdev dans le forum Débuter
    Réponses: 2
    Dernier message: 28/03/2012, 23h03
  2. Synchroniser une application avec une base de données centrale
    Par Sayrus dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 25/08/2009, 20h22
  3. Une application avec une base de données
    Par nabil148911 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/03/2008, 11h21
  4. Comment on connecte un programme Java avec une base de données FireBird?
    Par Gomez dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 16/02/2007, 10h21
  5. Comment créer un site immobilier dynamique avec une base de données ?
    Par Alain troverti dans le forum Général Conception Web
    Réponses: 14
    Dernier message: 07/07/2006, 21h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo