Suche…


Einführung

Flask-SQLAlchemy ist eine Flask-Erweiterung, die Unterstützung für die bekannten Python-Objekte für relationale Mapper (ORM) SQLAlchemy für Flask-Anwendungen bietet. Ziel ist es, SQLAlchemy mit Flask zu vereinfachen, indem einige Standardimplementierungen für allgemeine Aufgaben bereitgestellt werden.

Installation und erstes Beispiel

Installation

pip install Flask-SQLAlchemy

Einfaches Modell

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    email = db.Column(db.String(120), unique=True)

Das obige Codebeispiel zeigt ein einfaches Flask-SQLAlchemy-Modell. Wir können der Modelldeklaration einen optionalen Tabellennamen hinzufügen. Dies ist jedoch häufig nicht erforderlich, da Flask-SQLAlchemy den Klassennamen während der Datenbankerstellung automatisch als Tabellennamen verwendet.

Unsere Klasse erbt von der baseclass Model, einer konfigurierten deklarativen Basis. Daher müssen wir die Basis nicht explizit definieren, wie dies bei der Verwendung von SQLAlchemy der Fall wäre.

Referenz

Beziehungen: Eins zu Viele

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80))
        email = db.Column(db.String(120), unique=True)
        posts = db.relationship('Post', backref='user')


    class Post(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        content = db.Column(db.Text)
        user_id = db.Column(db.Integer, db.ForeignKey('user.id')

In diesem Beispiel haben wir zwei Klassen, die User-Klasse und die Post-Klasse. Die User-Klasse ist unser übergeordnetes Element, und der Post ist unser Beitrag, da nur ein Post zu einem Benutzer gehören kann. Um dies zu erreichen, platzieren wir einen Fremdschlüssel für das untergeordnete Kind, der auf das übergeordnete Element verweist. In unserem Beispiel setzen wir einen Fremdschlüssel in der Post-Klasse, um auf die Benutzerklasse zu verweisen. Wir verwenden dann relationship() für das übergeordnete Element, auf das wir über unser SQLAlchemy-Objekt db zugreifen. Auf diese Weise können wir auf eine Sammlung von Artikeln verweisen, die durch die Post-Klasse repräsentiert werden, die unser Kind ist.

Um eine bidirektionale Beziehung zu erstellen, verwenden wir backref kann das backref auf das übergeordnete backref verweisen.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow