欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python SqlAlchemy動(dòng)態(tài)添加數(shù)據(jù)表字段實(shí)例解析

 更新時(shí)間:2018年02月07日 13:51:02   作者:HuangZhang_123  
這篇文章主要介紹了Python SqlAlchemy動(dòng)態(tài)添加數(shù)據(jù)表字段實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是Python SqlAlchemy動(dòng)態(tài)添加數(shù)據(jù)表字段,具體如下。

我們知道使用SqlAlchemy創(chuàng)建類(lèi)來(lái)映射數(shù)據(jù)表,類(lèi)屬性等于數(shù)據(jù)庫(kù)字段,但有時(shí)候要在我們創(chuàng)建表的時(shí)候,不確定數(shù)據(jù)表字段數(shù)量,遇到這種情況,應(yī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數(shù)據(jù)表,字段分別為myid和price,字段數(shù)量是固定,那么要實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建數(shù)量不明確的字段,代碼如下:

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()
#定義類(lèi)
class table_class(Base):
  __tablename__ = 'aaa'
  id=Column(Integer,primary_key=True)

# 動(dòng)態(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)

# 添加數(shù)據(jù)
dt=table_class(Col1='aaa',Col2="aaa")
session.add(dt)
session.commit()

上述代碼可看出,通過(guò)使用setattr()來(lái)實(shí)現(xiàn)動(dòng)態(tài)添加字段,而且字段名可根據(jù)實(shí)際命名,comment是字段注釋?zhuān)@個(gè)只有SqlAlchemy 1.2版本才有的功能 (SqlAlchemy 1.2 安裝 :pip install –pre sqlalchemy)

運(yùn)行結(jié)果:

當(dāng)然,在插入數(shù)據(jù)和查詢數(shù)據(jù)的時(shí)候,會(huì)出現(xiàn)無(wú)法確定代碼中對(duì)應(yīng)字段的屬性??梢允褂肧qlAlchemy執(zhí)行sql實(shí)現(xiàn)插入

總結(jié)

以上就是本文關(guān)于Python SqlAlchemy動(dòng)態(tài)添加數(shù)據(jù)表字段實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

最新評(píng)論