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 :

Alternative au module cgi déprécié


Sujet :

Réseau/Web Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 580
    Points
    580
    Par défaut Alternative au module cgi déprécié
    Bonjour,

    Le module cgi est supprimé à partir de la version 3.13 de Python. Par quoi remplacer les lignes de codes ci-dessous? Merci par avance pour vos réponses.

    Le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import http.server
    adr=("", 5555)
    mod=http.server.CGIHTTPRequestHandler
    mod.cgi_directories=["/"]
    http.server.HTTPServer(adr, mod).serve_forever()
    Page index.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    print("Content-type: text/html; charset=utf-8\n")
    print()
    html="""<!DOCTYPE html>
    <html>
    <head>
      <title>Saisie d'un nom</title>
      <meta charset="utf-8">
    </head>
    <body>
      <form action="/bonjour.py">
        Entrez votre nom :
        <input name="nom"><br>
        Indiquez votre age :
        <input name="age"><br>
        <button>Valider</button>
      </form> 
    </body>
    </html>"""
    print(html)
    Page bonjour.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import cgi 
    formulaire=cgi.FieldStorage()
    nom=formulaire.getvalue('nom')
    age=formulaire.getvalue('age')
    age=int(age)
    print("Content-type: text/html; charset=utf-8\n")
    print()
    print("<!DOCTYPE html><html><head><meta charset=\"utf-8\"></head><body>")
    print("Bonjour "+nom+". ")
    if (age<18):
      print("Tu es une personne mineure.")
    else:
      print("Tu es une personne majeure.")
    print("</body></html>")

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

    Citation Envoyé par eleydet Voir le message
    Le module cgi est supprimé à partir de la version 3.13 de Python.

    Votre code n'utilise pas le module "cgi" mais le module "http.server"... Et la classe CGIHTTPRequestHandler qui permet de travailler avec le protocole CGI ne dépend pas du module cgi.


    - W

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 580
    Points
    580
    Par défaut
    Bonsoir,

    En tous les cas, les 3 programmes, jusqu'à la version 3.12, fonctionnaient. Il ne fonctionnent plus avec la version 3.13 en affichant le message : "cgi is deprecated and slated for removal in Python 3.13".

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 426
    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 426
    Points : 37 008
    Points
    37 008
    Par défaut
    Lorsque je vous ai répondu votre message ne contenait que le premier code.

    Ouvrez la documentation du module CGI en version 3.11, elle répond à votre question (par quoi le remplacer) dans les premières lignes.

    - W

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 580
    Points
    580
    Par défaut
    Bonjour,
    J'avais déjà consulté ce document avant de poser ma question sur ce forum. Je l'avais trouvé trop vague, pas assez explicite. Il ne m'a pas permis de résoudre mon problème.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 426
    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 426
    Points : 37 008
    Points
    37 008
    Par défaut
    Citation Envoyé par eleydet Voir le message
    Il ne m'a pas permis de résoudre mon problème.
    Tant que vous n'aurez pas à migrer en 3.13, vous n'avez pas de problème.
    Ce qui donne 3/4 ans pour trouver une solution.

    La plus simple sera de récupérer le module cgi à votre compte.
    Mais d'ici là, il y aura peut être des solutions de remplacement, des exemples à recopier sur Internet,...

    Vous pouvez même envisager de remplacer cgi par un serveur Web comme Flask.

    Bon courage,

    - W

Discussions similaires

  1. Réponses: 11
    Dernier message: 15/05/2008, 20h58
  2. probleme avec module.cgi
    Par Shyboy dans le forum Web
    Réponses: 3
    Dernier message: 16/06/2006, 11h56
  3. problème module CGI.pm(debutant)
    Par Shyboy dans le forum Web
    Réponses: 2
    Dernier message: 13/06/2006, 19h46
  4. [installation de modules]CGI::Session
    Par bakonu dans le forum Web
    Réponses: 5
    Dernier message: 05/10/2005, 15h54
  5. Module CGI::Session
    Par dclink dans le forum Modules
    Réponses: 2
    Dernier message: 02/02/2004, 13h56

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