三十-5:データベースSQLAlchemyの多くの関係構築された外

 

準備

カラムからのインポートcreate_engineのSQLAlchemyの、整数、文字列、フロート、テキストは、ForeignKeyの
sqlalchemy.ext.declarativeインポートからはdeclarative_base
sqlalchemy.ormインポートsessionmakerから

#データベース情報
ホスト=「127.0.0.1」
ポート=「3306」
データベース=「db_to_sqlalchemy」
=名'ルート'
パスワード= '123456'

データベースへウィジェットデータベース#+型接続、pymysqlは、本明細書において使用される
DB_URI = f'mysql + pymysql:// {ユーザー名}:{パスワード} @ {ホスト}:{ポート} / { データベース} '

エンジン= create_engine(DB_URI)#作成エンジンを
ベース= declarative_base(エンジン)#使用は、基本クラスの作成declarative_base
セッション= sessionmaker(エンジン)()


クラスのユーザー(ベース)
ユーザーズ__tablename__ ='
ID =列(整数、PRIMARY_KEYを=真、自動インクリメント=真)
ユーザ名=列(文字列(50)、NULL可能=フロート)

DEF __repr __(自己):
戻りf'User(ユーザ名:{} self.username)」


クラス条(塩基):
__tablename__ = '記事'
ID =カラム(整数、 PRIMARY_KEY = Trueの場合、自動インクリメント=真)
タイトル=列(文字列(50)、NULL可能= Falseの)
コンテンツ=列(テキスト、NULL可能=フロート)
はuid =列(整数、ForeignKeyの( 'user.id'))

デフ__repr __(自己):
リターンf'Article(タイトル:{self.title}、コンテンツ:{self.content})」


Base.metadata.create_all()

利用者=ユーザー(ユーザー名= 'AA')
ユーザ)session.add
session.commitを()

論文=条(タイトル= 'TITLE2'、コンテンツ= '123'、UID = 1)
セッション。アドオン(記事)
session.commit()

 

記事を介してユーザ情報を取得します

 

外部のqueryメソッドを使用せずに建てられました

使用外内蔵:関係を

 

ユーザーによって対応する商品情報を取るためにuidを

 

後方参照:ウェイは、より多くのモデルで必要とされるよりも、外部のビルド関係との関係、あまりにも面倒、SQLAlchemyの逆参照方法を提供する追加されます

記事によって、ルックアップ逆にすることができます同じ

 

おすすめ

転載: www.cnblogs.com/zhongyehai/p/11809310.html