J'ai reçu les données du formulaire HTML avec Python et j'ai essayé de les afficher.
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
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
(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