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

Réseau/Web Python Discussion :

Afficher les réponses d'un script python sur un page web


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 8
    Points
    8
    Par défaut Afficher les réponses d'un script python sur un page web
    Bonjour,

    Tout d'abord je tiens à préciser que je suis débutant en python.

    Je suis en train de réaliser 2 script en python pour remonter des infos provenant de serveurs (serveur ubuntu & win 03).
    Je veux afficher les résultats de ces scripts de manière organisé dans une page web, à la manière d'un tableau de bord pour consulter toutes les infos, et j'ai plusieurs questions. On va donc avoir une listes de serveurs avec les infos qui vont bien.

    Et là je bute un peu, si mon script (linux) est réalisé, je ne comprend pas comment implémenté le HTML dedans. Pouvez vous m'indiquer la méthode ?

    Pour l'instant je veux tester ça avec 1 seul serveur, mais au final il y aura de nombreux serveurs. Est-il possible d'afficher toutes les infos sur la même page ? Quelle est la méthode ?

    N'est t'il pas plus judicieux de rentrer toutes les infos dans une bdd sql et ensuite utiliser ses infos dans la page web ?

    Je tiens à préciser que même une légère piste serrait la bienvenue. =)

    Merci d'avance.


    Cordialement, Greg.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 341
    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 341
    Points : 36 863
    Points
    36 863
    Par défaut
    Salut,
    Pour passer d'une requête HTTP à l'exécution d'un script PHP, Perl, JSP, Python,... il faut passer par une mécanique qui s'appelle CGI
    La documentation est un bon point de départ pour voir les différentes solutions possibles avec Python.

    Pour l'instant je veux tester ça avec 1 seul serveur, mais au final il y aura de nombreux serveurs. Est-il possible d'afficher toutes les infos sur la même page ? Quelle est la méthode ?
    N'est t'il pas plus judicieux de rentrer toutes les infos dans une bdd sql et ensuite utiliser ses infos dans la page web ?
    Là vous avez un problème de conception qu'il faut reformuler...
    Appelons "Client" celui qui souhaite afficher ces informations sur son navigateur...

    Comme il ne connaît pas l'ensemble des serveurs qui remontent des informations et qu'il ne sera pas commode qu'il tape toutes les URL correspondantes dans son navigateur, il faudra lui proposer une seule URL - (et donc un seul serveur WEB) qui lui retourne une sorte de menu dans lequel il sélectionnera (un, plusieurs, tous?) les serveurs qui l'intéressent.

    La base de donnée devient intéressante car vous n'allez peut être pas permettre qu'un coup de clic déclenche l'exécution simultanée de scripts sur tous les serveurs...

    Le script qui collecte les infos pourrait s'exécuter toutes les X minutes sur chaque serveur et remonter les informations dans une BDD.
    Dans ce cas, le lancement des scripts et la remontée d'infos sont sous la responsabilité de chaque serveur.
    Une autre approche pourrait être de lancer les scripts via un ou des daemons qui s'exécutent sur le serveur WEB.

    Je préfère 1, car celà évite d'avoir un contrôleur "central" qui pour l'instant ne se justifie pas...et...rien n'empêche le script de faire des collectes toutes les secondes pour expédier 60 points de mesures toutes les minutes.

    Comment les scripts stockeront leurs infos en base?
    via une/des requêtes HTTP POST contenant les informations sous une forme structurée XML, JSON, binaire,... pour l'instant, peu importe.

    L'architecture de la solution prend forme:
    1. Le client consulte un serveur WEB qui lui affiche les résultats.
    2. Les serveurs alimentent le serveur WEB avec de nouvelles informations.
    3. Le serveur WEB est composé de services HTTP et de bases de données (les frameworks Django, Turbogears, Pylons sont peut être à considérer).


    mais au final il y aura de nombreux serveurs.
    Pose des questions de dimensionnement: 100 serveurs qui expédient 1Ko toutes les secondes = stocker 6Mo/minute, 3.6Go/heure, 90Go/jour,...
    • bande passante réseau,
    • nombre de serveurs de base de données,
    • nombre de serveurs WEB,...


    L'autre aspect insidieux de la BDD est que cela ouvre la porte à des rapports horaires/journaliers/hebdomadaires/mensuels... qui demanderont un peu de conception côté modèle de donnée pour que ce ne soit pas l'horreur à réaliser par la suite...
    C'est ce qui permettra peut être de privilégier une BDD SQL (laquelle) ou du NoSQL (CouchDB) ?

    Si vous ne saviez pas que faire les 3 a 6 mois qui viennent
    Courage
    - W

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Je m'étais assez mal exprimé sur certains points, je me permet d'apporter quelques précisions.

    La BDD est imposée, donc ce n'est pas un choix, même s'il s'avère judicieux au final.

    Pour l'infrastructure, tout est fibré, et il n'y aurai qu'une màj par jour, en fait on ne veut pas du temps réel mais juste un "bilan" consultable quand besoin est (quand on remplace un élement par exemple...c'est surtout pour vérifier si jamais un élement du reseau n'est pas à jour). Donc pas de conservation d'historique.

    En revanche je n'ai que 3 mois (Moins 1 semaine dejà écoulé) pour réaliser cette tâche.

    Est-ce faisable pour un "débutant". N'est -il pas plus judicieux d'optimiser les outil déjà disponible (nagios+snmp listener) qui permettent de réaliser ma tâche et faire autre chose...(Ils ont peu de sujet de travail à me proposer, après développez en python ne peut être qu'une bonne expérience pour mon avenir (école d'info))

    Merci pour ta réponse.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 341
    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 341
    Points : 36 863
    Points
    36 863
    Par défaut
    Salut,

    Citation Envoyé par Gregzz Voir le message
    Est-ce faisable pour un "débutant". N'est -il pas plus judicieux d'optimiser les outil déjà disponible (nagios+snmp listener) qui permettent de réaliser ma tâche et faire autre chose...(Ils ont peu de sujet de travail à me proposer, après développez en python ne peut être qu'une bonne expérience pour mon avenir (école d'info))
    Ca dépend de ta niaque et de ce que tu veux mettre dans ton CV ou dans les apprentissages que tu souhaites faire.

    Nagios propose déjà l'infrastructure "centrale" mais pas nécessairement les scripts qui remontent les informations souhaitées et il faudra de toute façon faire un travail "particulier" pour en extraire les informations souhaitées.

    Si tu pars sur un framework Python tel que Django, Pylons ou Turbogears... Il faudra aussi passer du temps à les mettre en œuvre pour que çà le fasse.

    Dans tous les cas, il va falloir apprendre et trouver comment construire la solution à ce problème particulier.

    Comme ce n'est pas très compliqué, 3 mois me semblent raisonnable (vu de loin)... La première chose à faire est l'écriture de l'agent qui va collecter et remonter les infos. Comme il doit s'exécuter sur n'importe quoi et qu'on ne sait pas encore comment il remontera les infos, une première mouture pourrait se contenter d'écrire un fichier XML "local".

    La deuxième mouture remontant les infos dans la base un engin qui reste à définir: Nagios ou framework Python?
    Le soucis est plus côté appropriation du framework (ou de Nagios) que dans la quantité de code qu'il faudra écrire avec.

    Pendant les 2/3 semaines à venir, développer la première mouture du script et évaluez votre confort avec Nagios et Pylons(qui est largement suffisant) pour décider 'avec quoi' faire la suite...
    - W
    PS: Si vous êtes en entreprise, un aspect qui peut aider à choisir sera peut être aussi qui pourra vous aider si vous choisissez A plutôt que B... "Qui" devant se traduire par des vrais bonhommes qui seront disponibles...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    A vrai dire il est plus souhaitable d'être indépendant de nagios (je préfère prendre de l'expérience avec python, enfin le maximum que je peux).
    Je me suis renseigné sur Django et je penses que c'est la solution que je compte employer. J'ai juste survolé le sujet mais je suis assez confirmé dans le dev web donc bon, ça fait déjà un apprentissage de moins.

    Oui je suis en entreprise donc ça fait du 8h de travail par jour comme temps disponible. En revanche il n'y a personne pour m'aider en python, mon maître de stage est en train d'apprendre en même temps que moi, donc je ne pourrai pas le solliciter véritablement si je reste coincé. J'ai le bouquin de gerrard swinnen et le net à ma disposition;

    J'ai déjà mon agent linux en partie (inspiré de pymon (http://pymon.sourceforge.net/)) il ne me reste plus qu'a lui faire écrire les résultat quelque part, je connais plutôt bien linux donc cela m'a facilité la tâche (A contrario de windows que je touche 2 fois par ans depuis 5 ans, mais j'ai trouvé ça http://docs.python.org/library/os.ht...em-information)


    Merci encore.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 341
    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 341
    Points : 36 863
    Points
    36 863
    Par défaut
    Salut,

    Je ne connaissais pas mais en diagonale, PyMon semble être déjà en soit tout un framework qu'on peut comparer à Nagios.
    Il n'est peut être pas "utile" de passer par un framework Web.
    A voir.
    - W
    PS: Dans ma mesure des niveaux de complexités Python est simple, PyMon ou Django sont "compliqués". La raison en est qu'un framework propose une certaine description du domaine (modèle) auquel il s'applique qui n'est pas nécessairement bien documentée.

    Si on adhère au modèle, les solutions à un problème sont en général simples, lorsqu'on résiste, on fait les choses de travers. Il faut donc avoir réalisé un ou deux projets (pas forcément gros) pour prendre ses marques ou bénéficier de l'aide de personne qui ont "conceptualisé" comment réaliser avec... "conceptualisé" pour dire, capable d'expliquer pourquoi on fait ainsi plutôt qu'autrement.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Donc il faut mieux que je commence de 0, et oublier pymon enfait.
    Bon ben je vais retourner à mon apprentissage.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Finalement je vais m'orienter autrement.
    Je vais directement créer un plug in qui fonctionnera sous nagios mais toujours en python, ça va me simplifier un peu la tache.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Jette un oeil à webpy.

    Je pense qu'il t'aidera facilement à récupérer les résultats de tes scripts pour les afficher proprement grâce à un template. Il possède un serveur intégré, mais si besoin tu pourras ajouter en amont un serveur plus approprié tel que lighttpd ou nginx sans modifier tes scripts.

    Son apprentissage est relativement aisé, pour réaliser des choses simples. Il est en python, et il n'est pas nécessaire d'apprendre un métalangage en sus qui pourrait t'embrouiller. Il est capable en outre de travailler avec plusieurs bd (sqlite, postgre, mysql...).

    Un petit exemple ici:

    http://www.developpez.net/forums/d90...e-utilisateur/

    Cordialement.

Discussions similaires

  1. Afficher le contenu d'un fichier xml sur une page web
    Par pitchu dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 26/02/2015, 16h03
  2. Intégrer script python sur ma page web
    Par titoum76 dans le forum Déploiement/Installation
    Réponses: 3
    Dernier message: 24/11/2011, 15h13
  3. problème d'affiche d'une diapo de format exe sur la page web
    Par kitcarson23 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/06/2008, 16h47
  4. Intégrer un script python dans une page Web
    Par Mysti¢ dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 02/11/2006, 10h20
  5. [RSS] Afficher les flux RSS d'autres sites sur sa page
    Par vallica dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/06/2006, 20h57

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