Python SqlAlchemy動態(tài)添加數據表字段實例解析
本文研究的主要是Python SqlAlchemy動態(tài)添加數據表字段,具體如下。
我們知道使用SqlAlchemy創(chuàng)建類來映射數據表,類屬性等于數據庫字段,但有時候要在我們創(chuàng)建表的時候,不確定數據表字段數量,遇到這種情況,應如何解決?
先看常規(guī)用法
from sqlalchemy import create_engine,Column,String,Integer class Mybase(Base): #表名 __tablename__ ='mycars' #字段,屬性 myid=Column(String(50), primary_key=True) price=Column(String(50))
上述代碼是創(chuàng)建mycars數據表,字段分別為myid和price,字段數量是固定,那么要實現動態(tài)創(chuàng)建數量不明確的字段,代碼如下:
from sqlalchemy import * from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base engine = create_engine('mysql+pymysql://root:1234@localhost/test?charset=utf8', echo=False) # engine = create_engine('sqlite:////MyDB.sqlite3', echo=False) DBSession = sessionmaker(bind=engine) session = DBSession() Base = declarative_base() #定義類 class table_class(Base): __tablename__ = 'aaa' id=Column(Integer,primary_key=True) # 動態(tài)添加字段 for i in range(3): setattr(table_class,'Col'+str(i),(Column('Col'+str(i), String(50),comment='Col'+str(i)))) Base.metadata.create_all(engine) # 添加數據 dt=table_class(Col1='aaa',Col2="aaa") session.add(dt) session.commit()
上述代碼可看出,通過使用setattr()
來實現動態(tài)添加字段,而且字段名可根據實際命名,comment是字段注釋,這個只有SqlAlchemy 1.2版本才有的功能 (SqlAlchemy 1.2 安裝 :pip install –pre sqlalchemy)
運行結果:
當然,在插入數據和查詢數據的時候,會出現無法確定代碼中對應字段的屬性??梢允褂肧qlAlchemy執(zhí)行sql實現插入
總結
以上就是本文關于Python SqlAlchemy動態(tài)添加數據表字段實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
Python實現的登錄驗證系統(tǒng)完整案例【基于搭建的MVC框架】
這篇文章主要介紹了Python實現的登錄驗證系統(tǒng),結合完整實例形式分析了Python基于搭建的MVC框架進行登錄驗證操作的相關實現與使用技巧,需要的朋友可以參考下2019-04-04Python錯誤: SyntaxError: Non-ASCII character解決辦法
這篇文章主要介紹了Python錯誤: SyntaxError: Non-ASCII character解決辦法的相關資料,需要的朋友可以參考下2017-06-06PyCharm License Activation激活碼失效問題的解決方法(圖文詳解)
這篇文章主要介紹了PyCharm License Activation激活碼失效問題的解決方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03