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 :

Demande aiguillage programmation concept et mise en ligne


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Novembre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 22
    Par défaut Demande aiguillage programmation concept et mise en ligne
    Bonsoir,

    Après être arrivé au bout de ma problématique en développant un descripteur de fichiers logs personnalisés (voir ici https://www.developpez.net/forums/d1...-d-evenements/) pour traiter des résultats de missions d'un simulateur d'aviation en ligne; j'envisage de me lancer dans un sorte de "carnet de vol" et de suivi de pilotes en "campagne".

    Le concept serait le suivant:
    1) un programme python lancé par le gestionnaire de la campagne qui va générer et mettre à jour une BDD "campagne" (à partir d'une BDD "mission")
    2) ce même programme va générer les informations nécessaires au formulaire de "carnet de vol"
    3) ce formulaire "carnet de vol" doit recueillir les informations de la BDD mission (voir point 2) et être complété en ligne par les joueurs
    4) un résumé du "carnet de vol" (csv ou autre) doit être traité (python+sql) pour comparer avec la réalité de la mission (BDD "mission") et mettre à jour la BDD "campagne"
    5) un programme python+sql doit pouvoir générer les fichiers suivants consultable en ligne
    ----liste des pilotes et victoires par camp
    ----carnet de vol par pilotes récapitulant l'ensemble des missions effectuées


    concept en image

    Nom : Leningrad-campagne-et-suivi-pilote-concept-programme.jpg
Affichages : 259
Taille : 104,0 Ko

    Ma problématique c'est que je ne vois pas à l'heure actuelle comment réaliser les points 3 et 5 de manière automatique afin qu'ils puissent être consultés en ligne facilement:
    - page web ? => mais est-ce facile de transformer une requête sql en tableau web via python ? il faut un ftp pour cela ?
    - google spreadsheet ? => une solution du "pauvre" ?
    - autre idée ?

    Merci d'avance pour vos conseils

    Genius

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par fabgenius Voir le message
    - page web ? => mais est-ce facile de transformer une requête sql en tableau web via python ? il faut un ftp pour cela ?
    Je crois que tu mélanges les technologies et leur but...
    ftp c'est pour transférer des fichiers. Ca n'a aucun rapport avec "transformer une requête SQL en tableau web".
    Et pareil pour la page web. La page web, c'est ce qu'on nomme en prog le "client-serveur universel". En effet te suffit d'un serveur web qui contient un moteur de création de page (et ce moteur peut-être dans n'importe quel langage de php à nodeJS en passant par C, bash ou Python) pour que tes clients puissent lire avec simplement leur navigateur les infos que tu veux fournir.
    Donc en fait tout dépend de ton client. Veux-tu un client lambda qui puisse se connecter et regarder les infos depuis n'importe quel PC (là un serveur web c'est le plus simple) ou bien un client bien identifié qui doit installer un programme spécifique pour pouvoir récupérer et afficher les infos que tu lui envoies et là tu entres dans un autre domaine (création d'une IHM parce que le client il aime bien les boutons simples d'utilisation), communication avec ta bdd, etc...

    Sinon concernant la question principale, à savoir "transformer une requête (ou plutôt le résultat renvoyé par le serveur bdd pour la requête) en page web" oui ça c'est peanut. La requête te renvoie des lignes et chaque ligne est une liste de champs (ou un dico de champ si on active l'option qui va bien) tandis qu'un tableau c'est une suite de lignes (<tr>) contenant des cases encadrées de "<td>" donc c'est exactement le même format, seule la présentation diffère. Donc convertir un truc type [nom, prenom, age] en <tr><td>nom</td><td>prenom</td><td>age</td></tr> c'est le B+A=BA de la prog.
    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
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Novembre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Donc en fait tout dépend de ton client. Veux-tu un client lambda qui puisse se connecter et regarder les infos depuis n'importe quel PC (là un serveur web c'est le plus simple) ou bien un client bien identifié qui doit installer un programme spécifique pour pouvoir récupérer et afficher les infos que tu lui envoies et là tu entres dans un autre domaine (création d'une IHM parce que le client il aime bien les boutons simples d'utilisation), communication avec ta bdd, etc
    Merci de ta réponse,

    L'idée serait d'avoir une utilisation simple (pas de programme à installer) pour l'utilisateur lambda et que l'utilisateur puisse consulter une simple page "type web" (une page par camp pour séparer les accès sans droits).

    Donc si je comprends bien si je veux afficher un tableau, je peux le convertir facilement. Mais pour mettre en ligne cette page quel sont les requis ?

    A+

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fabgenius Voir le message
    Mais pour mettre en ligne cette page quel sont les requis ?
    1. un serveur web (ex apache) pour envoyer au client les réponses aux demandes du navigateur
    2. une technologie pour générer les pages. php permet par exemple de mettre du code dans le html => quand le serveur lit la page (pour l'envoyer au client) et qu'il arrive au code, là il l'exécute et intègre ensuite le html généré à la place du code => le client ne reçoit que du html. Me semble qu'il existe un truc analogue avec Python. Sinon une technologie plus vieille c'est le "cgi/bin". Le principe est le même (à savoir générer du html) mais le générateur (donc un script, un exec, n'importe quoi en fait) se trouve dans un dossier spécial "cgi/bin". Plus difficile car ça sépare le html (un fichier) de la partie "code" (un autre fichier). Ou alors une 3° techno où les pages html sont générées par un automate (donc en Python pourquoi pas) qui tourne à intervalle régulier. Là les pages ne sont pas dynamiques (générées à la demande du client) mais pseudo-statiques (générées par exemple toutes les 6h mais pendant 6h la page ne bougera pas)
    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]

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Novembre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 22
    Par défaut
    Re,

    Est-ce que cette voie te semble cohérente:

    1) création d'une base de données spécifique pour stocker les données des joueurs ayant participé à la mission via python (je vois que l'on parle souvent de Mysql avec php mais je connais plus Sqlite est-ce un problème d'utiliser ce dernier ?).
    2) écriture d'une page php qui va afficher un formulaire html dynamique où le joueur pourra retrouver son nom dans une liste déroulante (tiré de la BDD Sqlite), l'avion piloté (idem BDD) et compléter son formulaire manuellement (réclamation de victoires aériennes, commentaires sur la mission effectuée, etc...) => les éléments saisis vont mettre à jour la BDD via php
    3) Programme Python/sql exécuté par le gestionnaire de campagne pour vérifier les réclamations de victoires et valider celle-ci en mettant à jour la BDD (OU ?) exécution automatique via php d'une requête sql si possible
    4) écriture d'une page php qui va afficher un page html dynamique avec la liste des pilotes, des victoires, etc..

    Merci encore pour ta patience

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fabgenius Voir le message
    1) création d'une base de données spécifique pour stocker les données des joueurs ayant participé à la mission via python (je vois que l'on parle souvent de Mysql avec php mais je connais plus Sqlite est-ce un problème d'utiliser ce dernier ?).
    On parle souvent de php+mysql à cause d'un outil nommé "LAMP" (Linux, Apache, Mysql, Php) qui intègre en un "tout complet" ces 4 technos (il existe aussi pour Windows sous le nom "WAMP") et qui plait bien à ceux qui ne veulent pas se casser le luc à installer le tout de façon individuelle. Perso ce n'est absolument pas mon cas (je préfère justement ultra séparer les choses pour pouvoir changer un truc à mon gré). Et en plus je préfère Postgres à MySQL. C'est un goût perso mais au moment où j'ai testé les deux, MySQL ne permettait pas les intégrités référentielles sur clefs multiples (clefs composées de plusieurs champs) tandis que Postgres le permettait sans souci. Il parait que MySQL pro (payant) le permet maintenant mais justement "payant" et "maintenant" !!!
    Et en plus à l'époque où j'avais testé (en 2005) le connecteur Python/Mysql avait un bug: si j'avais deux clients qui ouvraient tous deux chacun un accès sur la même bdd et que le client 1 modifiait une table, le client 2 ne voyait les modifs que s'il réinitialisait sa connexion => évidemment ça a dû être arrangé depuis mais pour moi c'était trop tard, ces deux détails m'avaient fait basculer dans Postgres et j'ai jamais regretté.

    sqlite lui est un autre truc qui offre juste une technologie bdd (langage SQL, tables, contraintes, clefs, etc) sans offrir de serveur bdd. On ne peut interroger la bdd que si on se trouve sur la machine qui la contient (alors qu'on peut interroger MysQL ou Postgres depuis un host distant). Et je suis pas certain que sqlite accepte les accès concurrents (plusieurs clients en même temps). C'est vraiment un truc super minimaliste mais mis à part ça, pas de souci. Sauf que je ne sais pas si php possède un connecteur sqlite).

    Citation Envoyé par fabgenius Voir le message
    2) écriture d'une page php qui va afficher un formulaire html dynamique où le joueur pourra retrouver son nom dans une liste déroulante (tiré de la BDD Sqlite), l'avion piloté (idem BDD) et compléter son formulaire manuellement (réclamation de victoires aériennes, commentaires sur la mission effectuée, etc...) => les éléments saisis vont mettre à jour la BDD via php
    Pareil. Faut juste vérifier si php peut taper dans sqlite...

    Citation Envoyé par fabgenius Voir le message
    3) Programme Python/sql exécuté par le gestionnaire de campagne pour vérifier les réclamations de victoires et valider celle-ci en mettant à jour la BDD (OU ?) exécution automatique via php d'une requête sql si possible
    Il faut bien comprendre que php c'est (grosso-modo) du html (donc exécuté quand le client ouvre la page qui le contient, même si maintenant php a été décliné en script indépendant son origine c'était "à la demande du client") tandis que python (ou C ou bash ou awk) c'est "côté serveur" donc exécuté quand le serveur le décide (encore une fois je pense avoir vu quelque part un truc permettant à du html d'intégrer du Python à la place du php mais je ne me souviens plus trop)

    Citation Envoyé par fabgenius Voir le message
    4) écriture d'une page php qui va afficher un page html dynamique avec la liste des pilotes, des victoires, etc..
    ok

    Citation Envoyé par fabgenius Voir le message
    Merci encore pour ta patience
    Pas de souci. Tes questions sont très bien établies et tu réfléchis aux réponses donc c'est avec plaisir. Si tu savais le nombre de posts où je réponds et où l'autre dit "oui mais ça marche pas" sans même dire ce qui ne va pas là oui il faut de la patience (d'ailleurs comme justement j'en ai pas trop généralement au 3° post je l'envoie chier grave et un modo me dit en MP "ok je te comprends mais faut pas le faire" )
    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]

Discussions similaires

  1. Pb de mise à la ligne
    Par maketossss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/11/2005, 05h51
  2. Mise en ligne d'un prog vb, précautions ?
    Par mosquitout dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2005, 21h41
  3. mise en ligne
    Par zorba49 dans le forum ASP
    Réponses: 4
    Dernier message: 16/05/2005, 14h10

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