Empfangen und Anzeigen von HTML-Formulardaten in Python

Ich habe die HTML-Formulardaten mit Python erhalten und versucht, sie anzuzeigen.

Beschreibung der HTML-Datei

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>

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

Beschreibung der Python-Datei

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

Führen Sie den CGI-Server aus

(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

Empfangen und Anzeigen von HTML-Formulardaten in Python
Zeigen Sie UTM-30LX-Daten in Python an
Zeigen Sie Fotos in Python und HTML an
Hashing von Daten in R und Python
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Zeichnen Sie Daten einfach in Shell und Python
Python-Variablen und Datentypen, die mit Chemoinfomatik gelernt wurden
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
Zeigen Sie FX (Forex) Daten Candle Stick in Python an
In [Python] -Form einreichen
POST JSON mit Python und empfange mit PHP
Lassen Sie uns mit Python Receive spielen und den Text des Eingabeformulars speichern / anzeigen
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Empfangen Sie Wörterbuchdaten von Python-Programmen mit AppleScript
HTML in Jupyter-Notizbuch anzeigen
Empfangen Sie Laufzeitargumente in Python 2.7
Stapel und Warteschlange in Python
Unittest und CI in Python
Anwendung zum Anzeigen und Durchsuchen lokaler Memos (Tagebuch) in Python
Zeigen Sie Zahlen und Zeichen an, die Variablen im Python-Druck zugewiesen sind
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten
Holen Sie sich LeapMotion-Daten in Python.
Python: Tags von HTML-Daten ausschließen
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen == und ist in Python
Lesen Sie die Protokollpufferdaten mit Python3
Sortieralgorithmus und Implementierung in Python
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
Behandeln Sie Daten im NetCDF-Format mit Python
Zuweisungen und Änderungen in Python-Objekten
Audio-Wellenform-Anzeige in Python
Zeigen Sie Zeichen wie AA in Python an
Überprüfen und verschieben Sie das Verzeichnis in Python
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Funktionssynthese und Anwendung in Python
Exportieren und Ausgeben von Dateien in Python
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part2-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part4-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part3-
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
Überlappende reguläre Ausdrücke in Python und Java
Anzeigen von LaTeX-Notationsformeln in Python, matplotlib
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Datenpipeline-Aufbau mit Python und Luigi
[Python, Julia] 3D-Anzeige in der Jupyter-Mayavi-Bibliothek
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
Unterschied in der Authentizität zwischen Python und JavaScript
Empfangen Sie Textdaten von MySQL mit Python
Module und Pakete in Python sind "Namespaces"
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Dateneingabe / -ausgabe in Python (CSV, JSON)
AM-Modulation und Demodulation mit Python Part 2