May 2025
Intermediate to advanced
208 pages
2h 55m
Japanese
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章はこれまでの章とは異なり、それぞれの節で SQLAlchemy を使う上での異なる側面に 焦点をあてている。この章では、前の章ほど詳しくは扱わない。便利なツールの簡単な紹介と 考えてほしい。 各節の終わりには、興味があればどこでもっと学べるかについての情報がある。これらのセクションは完全なチュートリアルではなく、特定のタスクを達成するための短いレシピを紹介している。この章の最初のパートは SQLAlchemy のいくつかの高度な使い方に焦点を当て、次のパートは SQLAlchemy を Flask のような Web フレームワークと一緒に使うことについて、そして最後のセクションは SQLAlchemy と一緒に使える追加のライブラリについてである。
ハイブリッド属性とは、クラスメソッドとしてアクセスされたときに ある振る舞いを示し、インスタンスにアクセスされたときに別の振る舞いを示すもので ある。別の考え方をすると、その属性が SQLAlchemy 文で使われたときには有効な SQL を生成し、インスタンスでアクセスされたときにはハイブリッド属性がインスタンスに対して直接 Python コードを実行するということだ。コードを発見するときに、これを理解するのが一番簡単だと思う。例14-1では、Cookie 宣言クラスを使ってこれを説明する。
fromdatetimeimportdatetimefromsqlalchemyimportColumn,Integer,Numeric,String,create_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ext.hybridimporthybrid_property,hybrid_methodfromsqlalchemy.ormimportsessionmakerengine=create_engine('sqlite:///:memory:')Base=declarative_base()classCookie(Base):__tablename__='cookies'cookie_id=Column(Integer,primary_key=True)cookie_name=Column(String(50),index=True)cookie_recipe_url=Column(String(255))cookie_sku=Column(String(55))quantity=Column(Integer())unit_cost=Column(Numeric(12,2))@hybrid_propertydefinventory_value(self):returnself.unit_cost*self.quantity ...
Read now
Unlock full access