suchen
HeimBackend-EntwicklungPython-TutorialFlask-Anwendung (Formularverarbeitung) in Python

Der Inhalt dieses Artikels befasst sich mit der Flaschenanwendung (Formularverarbeitung) in Python. Ich hoffe, dass er für Freunde hilfreich ist.

1. Warum Flask-WTF verwenden?

Das Anforderungsobjekt stellt alle vom Client gesendeten Anforderungsinformationen bereit. request.form hat insbesondere Zugriff auf Formulardaten, die durch POST-Anfragen übermittelt werden.
Obwohl die Unterstützung durch das Anfrageobjekt von Flask für die Handhabung von Webformularen ausreichend ist, gibt es immer noch viele Aufgaben, die monoton und repetitiv werden.
Die Generierung von Formular-HTML-Code und die Validierung übermittelter Formulardaten sind zwei gute Beispiele.

Vorteile:

Die Flask-WTF-Erweiterung macht die Verarbeitung von Webformularen zu einem angenehmeren Erlebnis. Bei dieser Erweiterung handelt es sich um eine Flask-Integration, die das Framework-unabhängige WTForms-Paket umschließt.

2. Was ist Formularverarbeitung?

Auf einer Webseite müssen immer einige Formulare erscheinen, um mit Benutzern zu interagieren, um Informationen zu erhalten.
Flask hat die WTForm-Formularbibliothek entwickelt, um Flask die Verwaltung und Bedienung von Formulardaten zu erleichtern.

Die wichtigsten Konzepte in WTForm sind wie folgt:

1). Form-Klasse, vom Entwickler definierte Formulare müssen von der Form-Klasse oder ihren Unterklassen erben.
Die Hauptfunktion der Form-Klasse besteht darin, über die darin enthaltene Field-Klasse einen schnellen Zugriff auf Daten im Formular zu ermöglichen.

2). Verschiedene Feldklassen, nämlich Felder. Im Allgemeinen entspricht jede Field-Klasse einem Eingabe-HTML-Tag.
Zum Beispiel entsprechen einige der Field-Klassen, die mit WTForm geliefert werden, wie etwa BooleanField, ,
SubmitField entspricht , usw.

3). Diese Klasse wird verwendet, um die Gültigkeit der vom Benutzer eingegebenen Daten zu überprüfen.
Zum Beispiel kann der Längenvalidator verwendet werden, um die Länge von Eingabedaten zu überprüfen,
FileAllowed überprüft den Typ der hochgeladenen Dateien usw.

Um CSFR-Angriffe (Cross-Site Request Forgery) zu verhindern, erfordert Flask außerdem, dass die App vor der Verwendung von Flask-wtf standardmäßig den geheimen Schlüssel festlegt. Die einfachste Möglichkeit zur Konfiguration ist app.config['SECRET_KEY'] = 'xxxx'.

3. Gemeinsame Feldklassen

PasswordField Passwortfeld, wandelt Eingaben automatisch in kleine schwarze Punkte um

DateField Textfeld, die Formatanforderung ist datetime . Datum ist das gleiche

IntergerField-Textfeld, die Formatanforderung ist eine Ganzzahl

DecimalField-Textfeld, die Formatanforderung ist dieselbe wie decimal.Decimal

FloatField-Textfeld, Der Wert ist eine Gleitkommazahl

BooleanField   Kontrollkästchen, der Wert ist wahr oder falsch

RadioField   Eine Reihe von Optionsfeldern

SelectField   Dropdown-Liste, das sollte es sein Beachten Sie, dass der Parameter „Choices“ die Dropdown-Optionen bestimmt, sich jedoch vom

MultipleSelectField Eine Dropdown-Liste mit mehreren verfügbaren Werten

Validator-Verifizierungsfunktion

Validator ist eine Verifizierungsfunktion, die ein Feld an ein Feld bindet Verifizierungsfunktion Anschließend führt Flask eine Verifizierung der Daten durch, bevor die Daten im Formular empfangen werden. Wenn die Verifizierung erfolgreich ist, werden die Daten empfangen. Für die Verifizierungsfunktion „Validator“ sind möglicherweise unterschiedliche Parameter erforderlich. Weitere Informationen zur Verwendung finden Sie im Quellcode der Datei „wtforms/validators.py“. Validator-Klasse:

*Grundsätzlich verfügt jeder Validator über einen Nachrichtenparameter, der angibt, welche Meldung angezeigt wird, wenn die Eingabedaten nicht den Anforderungen des Validators entsprechen.

E-Mail Um die Legitimität der E-Mail-Adresse zu überprüfen, ist das erforderliche reguläre Muster ^.+@(12+)$

EqualTo Vergleichen Sie die beiden Werte eines Felds, die normalerweise in Szenarien wie der doppelten Eingabe eines Kennworts verwendet werden. Sie können den Parameter Feldname schreiben. Beachten Sie jedoch, dass es sich um eine Zeichenfolgenvariable handelt, die auf den Feldnamen eines anderen Felds in derselben Form verweist

IPAddress Überprüfen Sie die IPv4-Adresse, die Parameter sind standardmäßig ipv4=True, ipv6=False. Wenn Sie IPv6 verifizieren möchten, können Sie diese beiden Parameter umgekehrt einstellen.

Länge Überprüfen Sie die Länge der Eingabezeichenfolge. Sie können zwei Parameter min und max angeben, um die Unter- und Obergrenze der festzulegenden Länge anzugeben. Beachten Sie, dass der Parametertyp eine Zeichenfolge und nicht INT ist.

NumberRange Um zu überprüfen, ob die eingegebene Zahl innerhalb des Bereichs liegt, können Sie zwei Parameter, min und max, verwenden, um die Ober- und Untergrenze der Zahl anzugeben. Beachten Sie, dass der Parametertyp eine Zeichenfolge und nicht INT ist !! Dann können Sie %(min)s und %( im Nachrichtenparameter dieses Validators max)s zwei Formatierungsteile festlegen, um dem Frontend mitzuteilen, um welchen Bereich es sich handelt. Andere Validatoren haben ebenfalls ähnliche Tricks, Sie können sich auf den Quellcode beziehen.

Optional Andere Validierungsfunktionen im selben Feld überspringen, wenn kein Eingabewert vorhanden ist

Erforderlich Erforderliches Feld

Regexp Verwenden Sie einen regulären Ausdruck, um den Wert zu überprüfen, Parameter regex='regular Muster'

URL URL überprüfen, das erforderliche reguläre Muster ist ^[a-z]+://(?P3+)(?P:[0-9]+)? ( ?P/.*)?$

 AnyOf  Stellen Sie sicher, dass der Wert in der Liste der optionalen Werte enthalten ist. Die Parameter sind Werte (eine Liste optionaler Werte). Insbesondere bei Verwendung in Verbindung mit SelectField weiß ich nicht, warum der Wert der Elemente in den Auswahlmöglichkeiten von SelectField keine Zahl sein kann. . Andernfalls kann nicht erkannt werden, dass die aktuelle Option eine legale Option ist, selbst wenn der Werteparameter von AnyOf relevante Zahlen enthält. Ich vermute, dass NoneOf den gleichen Trick hat.

NoneOf Stellen Sie sicher, dass der Wert nicht in der Liste der optionalen Werte enthalten ist

#forms.py文件:用来设定规则
from flask_wtf import FlaskForm
from flask_wtf.file import FileRequired, FileAllowed
from wtforms import StringField, PasswordField, SubmitField, FileField
from wtforms.validators import DataRequired, Length


class LoginForm(FlaskForm):
    name = StringField(
        label="用户名/邮箱/手机号",
        validators=[
            # DataRequired("请输入用户名"),
            Length(3, 20, message="长度不符"),
        ]
    )
    passwd = PasswordField(
        label="密码",
        validators=[
            # DataRequired("请输入密码"),
            Length(3, 20),
        ], )

    file = FileField(
        label="简历",
        validators=[
            FileRequired(),
            FileAllowed(['pdf', 'txt'], 'pdf 能被接收')
        ]
    )
#templates/demo/login.html
nbsp;html>


    <meta>
    <title>Title</title>


    {{ form.hidden_tag() }}     {{ form.name.label }} {{ form.name }}     {{ form.passwd.label }} {{ form.passwd }}     {{ form.file }}     
#主程序
import random
from flask import Flask, redirect, render_template
from forms import LoginForm
from flask_bootstrap import  Bootstrap

app = Flask(__name__)
bootstrap = Bootstrap(app)
app.config['SECRET_KEY'] =  random._urandom(24)

@app.route('/success/')
def success():
    return  "success"

@app.route('/login/', methods=('GET', 'POST'))
def submit():
    # 实例化表单对象;
    form = LoginForm()
    if form.validate_on_submit():
        print(form.data)
        return redirect('/success/')
    return render_template('demo/login.html', form=form)
app.run()

Flask-Anwendung (Formularverarbeitung) in Python

Das obige ist der detaillierte Inhalt vonFlask-Anwendung (Formularverarbeitung) in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:segmentfault. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Python lernen: Ist 2 Stunden tägliches Studium ausreichend?Python lernen: Ist 2 Stunden tägliches Studium ausreichend?Apr 18, 2025 am 12:22 AM

Ist es genug, um Python für zwei Stunden am Tag zu lernen? Es hängt von Ihren Zielen und Lernmethoden ab. 1) Entwickeln Sie einen klaren Lernplan, 2) Wählen Sie geeignete Lernressourcen und -methoden aus, 3) praktizieren und prüfen und konsolidieren Sie praktische Praxis und Überprüfung und konsolidieren Sie und Sie können die Grundkenntnisse und die erweiterten Funktionen von Python während dieser Zeit nach und nach beherrschen.

Python für die Webentwicklung: SchlüsselanwendungenPython für die Webentwicklung: SchlüsselanwendungenApr 18, 2025 am 12:20 AM

Zu den wichtigsten Anwendungen von Python in der Webentwicklung gehören die Verwendung von Django- und Flask -Frameworks, API -Entwicklung, Datenanalyse und Visualisierung, maschinelles Lernen und KI sowie Leistungsoptimierung. 1. Django und Flask Framework: Django eignet sich für die schnelle Entwicklung komplexer Anwendungen, und Flask eignet sich für kleine oder hochmobile Projekte. 2. API -Entwicklung: Verwenden Sie Flask oder Djangorestframework, um RESTFUFFUPI zu erstellen. 3. Datenanalyse und Visualisierung: Verwenden Sie Python, um Daten zu verarbeiten und über die Webschnittstelle anzuzeigen. 4. Maschinelles Lernen und KI: Python wird verwendet, um intelligente Webanwendungen zu erstellen. 5. Leistungsoptimierung: optimiert durch asynchrones Programmieren, Caching und Code

Python vs. C: Erforschung von Leistung und Effizienz erforschenPython vs. C: Erforschung von Leistung und Effizienz erforschenApr 18, 2025 am 12:20 AM

Python ist in der Entwicklungseffizienz besser als C, aber C ist in der Ausführungsleistung höher. 1. Pythons prägnante Syntax und reiche Bibliotheken verbessern die Entwicklungseffizienz. 2. Die Kompilierungsmerkmale von Compilation und die Hardwarekontrolle verbessern die Ausführungsleistung. Bei einer Auswahl müssen Sie die Entwicklungsgeschwindigkeit und die Ausführungseffizienz basierend auf den Projektanforderungen abwägen.

Python in Aktion: Beispiele in realer WeltPython in Aktion: Beispiele in realer WeltApr 18, 2025 am 12:18 AM

Zu den realen Anwendungen von Python gehören Datenanalysen, Webentwicklung, künstliche Intelligenz und Automatisierung. 1) In der Datenanalyse verwendet Python Pandas und Matplotlib, um Daten zu verarbeiten und zu visualisieren. 2) In der Webentwicklung vereinfachen Django und Flask Frameworks die Erstellung von Webanwendungen. 3) Auf dem Gebiet der künstlichen Intelligenz werden Tensorflow und Pytorch verwendet, um Modelle zu bauen und zu trainieren. 4) In Bezug auf die Automatisierung können Python -Skripte für Aufgaben wie das Kopieren von Dateien verwendet werden.

Pythons Hauptnutzung: ein umfassender ÜberblickPythons Hauptnutzung: ein umfassender ÜberblickApr 18, 2025 am 12:18 AM

Python wird häufig in den Bereichen Data Science, Web Development und Automation Scripting verwendet. 1) In der Datenwissenschaft vereinfacht Python die Datenverarbeitung und -analyse durch Bibliotheken wie Numpy und Pandas. 2) In der Webentwicklung ermöglichen die Django- und Flask -Frameworks Entwicklern, Anwendungen schnell zu erstellen. 3) In automatisierten Skripten machen Pythons Einfachheit und Standardbibliothek es ideal.

Der Hauptzweck von Python: Flexibilität und BenutzerfreundlichkeitDer Hauptzweck von Python: Flexibilität und BenutzerfreundlichkeitApr 17, 2025 am 12:14 AM

Die Flexibilität von Python spiegelt sich in Multi-Paradigm-Unterstützung und dynamischen Typsystemen wider, während eine einfache Syntax und eine reichhaltige Standardbibliothek stammt. 1. Flexibilität: Unterstützt objektorientierte, funktionale und prozedurale Programmierung und dynamische Typsysteme verbessern die Entwicklungseffizienz. 2. Benutzerfreundlichkeit: Die Grammatik liegt nahe an der natürlichen Sprache, die Standardbibliothek deckt eine breite Palette von Funktionen ab und vereinfacht den Entwicklungsprozess.

Python: Die Kraft der vielseitigen ProgrammierungPython: Die Kraft der vielseitigen ProgrammierungApr 17, 2025 am 12:09 AM

Python ist für seine Einfachheit und Kraft sehr beliebt, geeignet für alle Anforderungen von Anfängern bis hin zu fortgeschrittenen Entwicklern. Seine Vielseitigkeit spiegelt sich in: 1) leicht zu erlernen und benutzten, einfachen Syntax; 2) Reiche Bibliotheken und Frameworks wie Numpy, Pandas usw.; 3) plattformübergreifende Unterstützung, die auf einer Vielzahl von Betriebssystemen betrieben werden kann; 4) Geeignet für Skript- und Automatisierungsaufgaben zur Verbesserung der Arbeitseffizienz.

Python in 2 Stunden am Tag lernen: Ein praktischer LeitfadenPython in 2 Stunden am Tag lernen: Ein praktischer LeitfadenApr 17, 2025 am 12:05 AM

Ja, lernen Sie Python in zwei Stunden am Tag. 1. Entwickeln Sie einen angemessenen Studienplan, 2. Wählen Sie die richtigen Lernressourcen aus, 3. Konsolidieren Sie das durch die Praxis erlernte Wissen. Diese Schritte können Ihnen helfen, Python in kurzer Zeit zu meistern.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools