Flask
Flask-SQLAlchemy
Szukaj…
Wprowadzenie
Flask-SQLAlchemy to rozszerzenie Flask, które dodaje obsługę popularnego SQLAlchemy SQLAlchemy do mapowania obiektów w Pythonie. Ma na celu uproszczenie SQLAlchemy za pomocą Flask, zapewniając pewne domyślne implementacje typowych zadań.
Instalacja i przykład początkowy
Instalacja
pip install Flask-SQLAlchemy
Prosty model
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)
Powyższy przykład kodu pokazuje prosty model Flask-SQLAlchemy, możemy dodać opcjonalną tablename do deklaracji modelu, jednak często nie jest to konieczne, ponieważ Flask-SQLAlchemy automatycznie użyje nazwy klasy jako nazwy tabeli podczas tworzenia bazy danych.
Nasza klasa odziedziczy po modelu klasy bazowej, który jest skonfigurowaną bazą deklaratywną, dlatego nie ma potrzeby jawnego definiowania bazy, tak jak robilibyśmy to podczas korzystania z SQLAlchemy.
Odniesienie
- Pypi URL: [ https://pypi.python.org/pypi/Flask-SQLAlchemy][1]
- Dokumentacja URL: [ http://flask-sqlalchemy.pocoo.org/2.1/][1]
Relacje: jeden do wielu
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')
W tym przykładzie mamy dwie klasy: klasę użytkownika i klasę postu, klasa użytkownika będzie naszym rodzicem, a post będzie naszym postem, ponieważ tylko post może należeć do jednego użytkownika, ale jeden użytkownik może mieć wiele postów. Aby to osiągnąć, umieszczamy klucz obcy na dziecku odwołującym się do rodzica, który jest z naszego przykładu, umieszczamy klucz obcy na klasie Post w celu odniesienia do klasy użytkownika. Następnie używamy relationship()
na obiekcie nadrzędnym, do którego uzyskujemy dostęp za pośrednictwem naszej bazy danych SQLAlchemy obiektu db
. To pozwala nam odwoływać się do kolekcji przedmiotów reprezentowanych przez klasę Post, która jest naszym dzieckiem.
Aby utworzyć dwukierunkową relację, używamy backref
, pozwoli to dziecku na odwołanie się do rodzica.