Recevoir et afficher les données de formulaire HTML en Python

J'ai reçu les données du formulaire HTML avec Python et j'ai essayé de les afficher.

Description du fichier HTML

Tout d'abord, écrivez le code pour soumettre le formulaire en HTML.

index.html


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <form method="POST" action="cgi-bin/index.py">
      <label>texte:</label>
      <textarea name="text"></textarea>
      <button type="submit">Envoyer</button>
    </form>
  </body>
</html>

--À propos de la méthode

La method a une méthode GET pour obtenir les données et une méthode POST pour envoyer les données. Cette fois, nous enverrons les données, nous utiliserons donc la méthode POST.

--À propos de ʻaction`

Vous pouvez spécifier l'URL pour envoyer les données avec ʻaction. Cette fois, envoyez-le à cgi-bin / index.py` qui apparaîtra plus tard.

Pour plus d'informations sur l'envoi de données de formulaire, consultez les articles suivants. https://developer.mozilla.org/ja/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data

Description du fichier Python

Ensuite, écrivez un script CGI (Gateway Interface Standard) qui reçoit et affiche les données en Python. Un script CGI est un script qui est lancé par un serveur HTTP et traite les données saisies par l'utilisateur en HTML ou autre. Pour plus de détails, reportez-vous à l'article suivant. https://docs.python.org/ja/3/library/cgi.html#module-cgi

cgi-bin/index.py


#!usr/bin/python
# -*- coding: utf-8 -*-

import cgi #Importer le module CGI
import cgitb
import sys

cgitb.enable() #Puisqu'il est utilisé pour le débogage, il n'est pas décrit dans l'environnement de production.

form = cgi.FieldStorage() #Obtenir les données du formulaire

print("Content-Type: text/html; charset=UTF-8") #En-tête pour écrire du HTML
print("")

#Si aucune donnée de formulaire n'a été saisie
if "text" not in form:
    print("<h1>Error!</h1>")
    print("<br>")
    print("Entrez le texte!")
    print("<a href='/'><button type='submit'>Revenir</button></a>")
    sys.exit()

text = form.getvalue("text") #Obtenez la valeur des données

print(text)

Modifiez l'autorité d'exécution avec la commande suivante pour une exécution ultérieure.

Command


$ chmod 755 cgi-bin/index.py

Exécutez le serveur CGI

(J'ai fait référence à l'article suivant. https://qiita.com/shuichi0712/items/5ddc5b4e30c2373b17fb )

Ensuite, exécutez le serveur CGI. Écrivez le script pour cela dans cgiserver.py.

cgiserver.py


import http.server
http.server.test(HandlerClass=http.server.CGIHTTPRequestHandler)

Après cela, exécutez la commande suivante pour exécuter le serveur CGI.

Command


$ python -m http.server --cgi

Après cela, si vous recherchez http://0.0.0.0:8000 dans le navigateur, le formulaire sera affiché, et si vous remplissez et soumettez le formulaire, le contenu d'entrée sera affiché.

Recommended Posts

Recevoir et afficher les données de formulaire HTML en Python
Afficher les données UTM-30LX en Python
Afficher les photos en Python et html
Hashing de données en R et Python
Vérifier et recevoir le port série en Python (vérification du port)
Représentez facilement des données graphiques dans le shell et Python
Variables Python et types de données appris avec la chimio-automatique
[Python] Permutation des lignes et des colonnes de données Numpy
Afficher la bougie de données FX (forex) en Python
Soumettre sous forme [Python]
POST JSON avec Python et recevez avec PHP
Jouons avec Python Receive et enregistrez / affichez le texte du formulaire de saisie
Traitement pleine largeur et demi-largeur des données CSV en Python
Recevez des données de dictionnaire à partir de programmes Python avec AppleScript
Afficher le HTML dans le notebook Jupyter
Recevoir des arguments d'exécution dans Python 2.7
Pile et file d'attente en Python
Unittest et CI en Python
Application pour afficher et rechercher des mémos locaux (agenda) en Python
Afficher les nombres et les caractères affectés aux variables dans l'impression python
[Python] Afficher le temps écoulé en heures, minutes et secondes (00:00:00)
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Essayez simplement de recevoir un webhook avec ngrok et Python
Obtenez des données LeapMotion en Python.
Python: exclure les balises des données html
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre == et est en python
Lire les données des tampons de protocole avec Python3
Algorithme de tri et implémentation en Python
Obtenir des données de Quandl en Python
Manipuler des fichiers et des dossiers en Python
À propos de Python et Cython dtype
Gérez les données au format NetCDF avec Python
Affectations et modifications des objets Python
Affichage de la forme d'onde audio en Python
Afficher des caractères comme AA en python
Vérifiez et déplacez le répertoire en Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
Synthèse de fonctions et application en Python
Exporter et exporter des fichiers en Python
Inverser le pseudonyme plat et le katakana en Python2.7
Lire et écrire du texte en Python
[GUI en Python] Menu PyQt5 et barre d'outils-
Créer et lire des paquets de messages en Python
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie2-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie4-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie3-
Comment afficher les octets de la même manière en Java et Python
Chevauchement d'expressions régulières en Python et Java
Afficher les formules de notation LaTeX en Python, matplotlib
Obtenez des données supplémentaires vers LDAP avec python
Construction de pipeline de données avec Python et Luigi
[Python, Julia] Affichage 3D dans la bibliothèque Jupyter-Mayavi
Calculer et afficher le poids standard avec python
Différence d'authenticité entre Python et JavaScript
Recevoir des données textuelles de mysql avec python
Les modules et packages en Python sont des "espaces de noms"
Évitez les boucles imbriquées en PHP et Python
Entrée / sortie de données en Python (CSV, JSON)
Modulation et démodulation AM avec Python Partie 2