SQLAlchemy は、Python で SQL テーブルを作成するときに必要な多くのタスクに役立ちます。タスクの 1 つとしてリレーションシップの作成があります。
SQLAlchemy を使用したリレーションシップの作成は、SQL のみを使用するよりもはるかに簡単になります。構文が理解しやすくなり、手順が少なくなり、プロセスが合理化されます。
SQLAlchemy は Python にインポートされ、すべてのショートカット構文を使用できます。
from flask_sqlalchemy import SQLAlchemy
リレーションシップを作成するには、まずテーブルを作成する必要があります。 SQLAlchemy では、構文を
に短縮することで、これも簡単に行えます。class Owner(db.Model, SerializerMixin): __tablename__ = "owners" id = db.Column(db.Integer, primary_key=True)
これにより、主キーである ID を持つ所有者テーブルが作成されます。 他のコードを使用して、所有者の列属性を作成できます。これらは関係を結び付けるのに役立ちます。列を作成したら、後で作成する Dog テーブルの接続に取り組むことができます。関係のコードは次のとおりです:
dogs = db.relationship('Dog', back_populates='owner')
これは犬と飼い主を結びつけます。飼い主はたくさんの犬を飼うことができますが、後ろの集団が単数であることからわかるように、犬の飼い主は 1 人です。
次に、犬のクラスとテーブルを作成できます。多数の列属性を持つことができます。関係にとって重要なのは、外部キーを持つ所有者 ID が必要であることです。これは SQLAlchemy では次のように記述されます:
owner_id = db.Column(db.Integer, db.ForeignKey('owners.id'))
その後、飼い主と同じように関係を持つことになります。これはその逆で、以下のコードで犬と飼い主を接続します:
owner = db.relationship('Owner', back_populates= 'dogs')
犬には飼い主が 1 人いるため、前のコードでは owner でしたが、飼い主は複数の犬を飼うことができるため、ここでは犬として再入力する代わりに犬となります。
これで、2 つのテーブルにリレーションシップが設定されます。前に述べたように、これにより必要なコードの量が法的に減少し、SQL で記述する必要がなくなる構文が単純になります。
さらにコードを追加して、関連付けプロキシを追加し、無限ループを助けるシリアル化ルールを作成できますが、上記のコードは SQLAlchemy を使用しない場合よりもはるかに速く初期関係を作成します。
以上がPython で SQLAlchemy を使用してリレーションシップを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。