Apakah kaedah pelaksanaan mengubah suai nama jadual secara dinamik dalam python sqlalchemy?

PHPz
Lepaskan: 2023-04-28 09:58:06
ke hadapan
1799 orang telah melayarinya

Kaedah 1

Dalam ORM SQLAlchemy Python, anda boleh menggunakan kod berikut untuk menukar nama jadual kelas model data secara dinamik:

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'
Salin selepas log masuk

Dalam contoh ini, kita mula-mula mentakrifkan A model data bernama MyModel dan kaitkan dengan jadual my_custom_table_name. Kemudian, jika perlu, kita boleh menukar nama jadual secara dinamik dengan mengakses atribut __table__ kelas model.

Ini kerana rangka kerja ORM itu sendiri secara automatik akan mencipta objek Jadual yang sepadan untuk setiap kelas model data dan menyimpannya dalam atribut __table__ kelas. Kita boleh menggunakan atribut name untuk terus mengemas kini nama objek ini untuk menukar nama jadual secara dinamik.

Sila ambil perhatian bahawa menukar nama jadual secara dinamik boleh menjejaskan ketepatan dan kebolehselenggaraan aplikasi anda. Jadi pertimbangkan sama ada anda benar-benar perlu melakukan ini dan cara merancang untuk perubahan skema pangkalan data.

Kaedah 2

Jika kelas asal kita ialah ini:

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)
Salin selepas log masuk

Kita boleh menentukan kelas abstraknya:

class MyModelCls(Base):
    __abstract__ = True  # 关键语句,定义所有数据库表对应的父类
    __table_args__ = {"extend_existing": True}  # 允许表已存在
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
Salin selepas log masuk

Kemudian kembalikan objek kelas melalui fungsi

rreeee

Atas ialah kandungan terperinci Apakah kaedah pelaksanaan mengubah suai nama jadual secara dinamik dalam python sqlalchemy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan