ホームページ  >  記事  >  バックエンド開発  >  Python で SQLAlchemy を使用してリレーションシップを作成する

Python で SQLAlchemy を使用してリレーションシップを作成する

PHPz
PHPzオリジナル
2024-08-01 20:22:11393ブラウズ

Creating relationships using SQLAlchemy in Python

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。