Wie verwende ich WTForms (.py-Paket), um Informationen aus der Datenbank darzustellen und zu ändern?Python

Python-Programme
Anonymous
 Wie verwende ich WTForms (.py-Paket), um Informationen aus der Datenbank darzustellen und zu ändern?

Post by Anonymous »

Kontext: Ich versuche, eine Webanwendung zur Verwaltung von Mitarbeiterinformationskarten zu erstellen. Sie können also auf eine Mitarbeiterkarte klicken und Informationen wie Name, Alter, Abteilung usw. anzeigen und dann auch das Feld ändern und geänderte Informationen speichern.
Ziel: Ich versuche, WTForm dazu zu bringen, eine doppelte Aufgabe zu erfüllen, indem ich einen Feldplatzhalter verwende, um Informationen aus einer Datenbank darzustellen und es dem Benutzer dann zu ermöglichen, diese zu ändern, indem er neue Informationen eingibt und auf „Senden“ klickt. (Wenn dies eine schlechte Idee oder kein gültiger WTForm-Anwendungsfall ist, lassen Sie es mich wissen!)
Backend-Technologie: Python (3.12.x), Flask (3.1.x) und WTForms (3.2.x)

Frontend: HTML, CSS, Vanilla JS
Frage 1: Bedeutet das, dass ich für jeden Mitarbeiter eine neue Flask-Formularklasse erstellen muss? Karte (Klassendefinition siehe unten), wie EmployeeCardForm1, EmployeeCardForm2... usw., obwohl der einzige Unterschied der Wert für das Platzhalterattribut für HTML ist? Für 30 Mitarbeiter habe ich also 30 Mitarbeiterkartenklassen. (Scheint, als gäbe es einen besseren Weg)
Frage2: Wie kann der Platzhalterwert für den Parameter render_kw dynamisch festgelegt werden? Zumindest kann ich aus den WTForms-Dokumenten keinen direkten Weg erkennen. Gibt es eine Möglichkeit, dies während der Instanziierung der Formularklasse bereitzustellen? Ich bin mir nicht sicher.

Mit dynamisch meine ich, dass der Code durch Lesen aus einer Datenbank zur Laufzeit herausfindet, welchen Wert für render_kw festgelegt werden soll.

Code: Select all

class EmployeeCardForm(Form):

first_name = StringField(label="First Name",
validators=[
Length(min=1, max=100),
Regexp(regex="^[a-zA-Z]+$",
flags=re.IGNORECASE),
],
render_kw={"placeholder":  })

last_name = StringField(label="Last Name",
validators=[
Length(min=1, max=100),
Regexp(regex="^[a-zA-Z]+$",
flags=re.IGNORECASE),
],
render_kw={"placeholder":  })
Hier ist meine Ansichtsfunktion:

Code: Select all

@app.route("/", methods=['GET', 'POST'])
def index():

form = EmployeeCardForm(request.form)

return render_template("index.html", form=form)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post