Ich habe die HTML-Formulardaten mit Python erhalten und versucht, sie anzuzeigen.
Schreiben Sie zunächst den Code, um das Formular in HTML zu senden.
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="POST" action="cgi-bin/index.py">
<label>Text:</label>
<textarea name="text"></textarea>
<button type="submit">Senden</button>
</form>
</body>
</html>
Methode
Die "Methode" hat eine "GET" -Methode zum Abrufen der Daten und eine "POST" -Methode zum Senden der Daten. Dieses Mal werden wir die Daten senden, also werden wir die POST-Methode verwenden.
Mit "Aktion" können Sie die URL angeben, an die die Daten gesendet werden sollen.
Senden Sie es diesmal an cgi-bin / index.py
, das später angezeigt wird.
Weitere Informationen zum Senden von Formulardaten finden Sie in den folgenden Artikeln. https://developer.mozilla.org/ja/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data
Schreiben Sie als Nächstes ein CGI-Skript (Gateway Interface Standard), das Daten in Python empfängt und anzeigt. Ein CGI-Skript ist ein Skript, das von einem HTTP-Server gestartet wird und vom Benutzer eingegebene Daten in HTML oder dergleichen verarbeitet. Einzelheiten finden Sie im folgenden Artikel. https://docs.python.org/ja/3/library/cgi.html#module-cgi
cgi-bin/index.py
#!usr/bin/python
# -*- coding: utf-8 -*-
import cgi #CGI-Modul importieren
import cgitb
import sys
cgitb.enable() #Da es zum Debuggen verwendet wird, wird es in der Produktionsumgebung nicht beschrieben.
form = cgi.FieldStorage() #Formulardaten abrufen
print("Content-Type: text/html; charset=UTF-8") #Header zum Schreiben von HTML
print("")
#Wenn keine Formulardaten eingegeben wurden
if "text" not in form:
print("<h1>Error!</h1>")
print("<br>")
print("Geben Sie den Text ein!")
print("<a href='/'><button type='submit'>Rückkehr</button></a>")
sys.exit()
text = form.getvalue("text") #Holen Sie sich den Wert der Daten
print(text)
Ändern Sie die Ausführungsberechtigung mit dem folgenden Befehl für die spätere Ausführung.
Command
$ chmod 755 cgi-bin/index.py
(Ich habe auf den folgenden Artikel verwiesen. https://qiita.com/shuichi0712/items/5ddc5b4e30c2373b17fb )
Führen Sie als Nächstes den CGI-Server aus.
Schreiben Sie das Skript dafür in cgiserver.py
.
cgiserver.py
import http.server
http.server.test(HandlerClass=http.server.CGIHTTPRequestHandler)
Führen Sie danach den folgenden Befehl aus, um den CGI-Server auszuführen.
Command
$ python -m http.server --cgi
Wenn Sie danach im Browser nach http://0.0.0.0:8000 suchen, wird das Formular angezeigt. Wenn Sie das Formular ausfüllen und senden, wird der Eingabeinhalt angezeigt.
Recommended Posts