Python の SQLAlchemy ORM では、次のコードを使用してデータ モデル クラスのテーブル名を動的に変更できます:
from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class MyModel(Base): __tablename__ = 'my_custom_table_name' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) #... 其它定义或使用... # 动态修改表名 MyModel.__table__.name = 'my_new_table_name'
この例では、最初に A を定義します。 MyModel
という名前のデータ モデルを作成し、それを my_custom_table_name
テーブルに関連付けます。その後、必要に応じて、モデル クラスの __table__
属性にアクセスして、テーブル名を動的に変更できます。
これは、ORM フレームワーク自体が各データ モデル クラスに対応する Table オブジェクトを自動的に作成し、クラスの __table__
属性に格納するためです。 name
属性を使用してこのオブジェクトの名前を直接更新し、テーブル名を動的に変更できます。
テーブル名を動的に変更すると、アプリケーションの正確性と保守性に影響を与える可能性があることに注意してください。したがって、これを本当に行う必要があるかどうか、またデータベース スキーマの変更をどのように計画するかを検討してください。
元のクラスが次の場合:
from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class MyModel(Base): __tablename__ = 'my_custom_table_name' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer)
その抽象クラスを定義できます:
class MyModelCls(Base): __abstract__ = True # 关键语句,定义所有数据库表对应的父类 __table_args__ = {"extend_existing": True} # 允许表已存在 id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer)
次に、関数を通じてクラス オブジェクトを返します。
りー以上がPython sqlalchemyでテーブル名を動的に変更する実装方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。