Flask
Flask-SQLAlchemy
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
- Pypi-URL: [ https://pypi.python.org/pypi/Flask-SQLAlchemy ] [1 ]
- URL der Dokumentation: [ http://flask-sqlalchemy.pocoo.org/2.1/([1]
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.