Meine Anwendung verwendet eine Kombination aus Flask, Flask-SQLAlchemy, Flask-WTF und Jinja2.Flask-SQLAlchemy: Wie Sie eine Zeile bedingt einfügen oder aktualisieren
In seiner aktuellen Inkarnation habe ich eine Einstellungstabelle. Die Tabelle enthält nur einen Datensatz mit einem Feld. Anfangs enthält die Tabelle null Datensätze.
Was ich will, erreichen ist:
- Da keine Einträge in db vorhanden sind, dann zeigen leere Form bereit für Benutzereingaben
- Da ein Eintrag vorhanden ist, zeigen Sie den Eintrag, und
- Wenn der Benutzer den Wert ändert, aktualisieren Sie den rec in db.
Hier ist mein Code:
models.py
class Provider(db.Model):
id = db.Column(db.Integer, primary_key = True)
rssfeed = db.Column(db.String(120), unique = True)
def __init__(self, rssfeed):
self.rssfeed = rssfeed
def __repr__(self):
return '<NZBMatrix feed url %r>' % self.rssfeed
forms.py
class SettingsForm(Form):
rssfeed = TextField('rssfed', validators= [Required()])
views.py
So wie es aussieht, erstellt dieser Code einen Datensatz, wenn er nicht existiert, aber die Spalte rssfeed
leer ist.
Wie kann ich diesen Code ändern, so dass es INSERT
ist, wenn der Datensatz nicht existiert und UPDATE
wenn es tut?
Nur FYI - 'form.validate' sollte' form.validate() 'sein - eine Funktion ist immer truthy, aber Ihre Form * kann * Validierung nicht bestehen. –
Danke, dass du das unterstrichen hast! – happygoat