SQLAlchemy 反射已有表

使用ORM框架SQLAlchemy 時(shí),數(shù)據(jù)庫(kù)中已有表,不需要再使用SQLalchemy 創(chuàng)建,可以使用以下方式映射已存在表.
#  sqlalchemy  反射

from sqlalchemy import MetaData, create_engine
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker

uri = 'mysql+pymysql://root:sp@2016@10.1.1.1:3306/dev'

engine = create_engine(uri, echo=False)

metadata = MetaData(engine)

# ①:反射單個(gè)表
# apply_info = Table('apply_info', metadata, autoload=True)
# apply_info.columns.keys()  # 列出所有的列名
# *********************************************************************
# ②:反射整個(gè)數(shù)據(jù)庫(kù)
# 使用reflect()方法,它不會(huì)返回任何值
# metadata.reflect(bind=engine)

# metadata.tables.keys()  # 獲取所有的表名
# # 雖然反射了整個(gè)數(shù)據(jù)庫(kù),還是需要再添加一次具體的表反射.
# apply_info = metadata.tables['apply_info']
# *********************************************************************

# ③:基于ORM的反射

Base = automap_base()
# Base = declarative_base()
# apply_info = Base.metadata.tables['apply_info']

Base.prepare(engine, reflect=True)
Base.classes.keys()  # 獲取所有的對(duì)象名
# 獲取表對(duì)象
apply_info = Base.classes.apply_info
# *********************************************************************


Session = sessionmaker(bind=engine)

session = Session()

# 插入數(shù)據(jù)
# session.add(apply_info(email_address="foo@bar.com", name="foo"))
# session.commit()

# keys = apply_info.__table__.columns.keys()
#
# rows = session.query(apply_info)
#
# data = [getattr(rows, key) for key in keys]

# mysql 查詢的結(jié)果,可以通過(guò)dot.號(hào)訪問(wèn)。而oracle 不可以。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載,覺(jué)得這篇寫 SQLAlchemy Core,寫得非常不錯(cuò)。不過(guò)后續(xù)他沒(méi)寫SQLAlchemy ORM... ...
    非夢(mèng)nj閱讀 5,597評(píng)論 1 14
  • 不久的將來(lái)…… 朝九晚五的全職工作 可能不再是你唯一的收入來(lái)源 ?小時(shí)以內(nèi)求生存,?小時(shí)以外求發(fā)展 在微信上沒(méi)有微...
    小娟娟女王閱讀 209評(píng)論 0 0
  • 我覺(jué)得,這時(shí)候我真的很幸福。有那么多愛(ài)我的關(guān)心我的人在,感覺(jué)其實(shí)困難也沒(méi)有那么困難,別太保護(hù)我,我也要長(zhǎng)大?。‰m然...
    思莞姑娘閱讀 326評(píng)論 0 0
  • 最近一直在家里寫書《3天學(xué)會(huì)來(lái)奶茶店》,還在家長(zhǎng)籌備奶奶的83歲壽宴,一遍寫書一遍反思過(guò)去一年多的創(chuàng)業(yè)失敗。 總結(jié)...
    芒果戰(zhàn)鱷魚閱讀 690評(píng)論 5 2

友情鏈接更多精彩內(nèi)容