国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-22 23:10:05
字體:
供稿:網(wǎng)友

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

我們知道使用SqlAlchemy創(chuàng)建類來映射數(shù)據(jù)表,類屬性等于數(shù)據(jù)庫字段,但有時(shí)候要在我們創(chuàng)建表的時(shí)候,不確定數(shù)據(jù)表字段數(shù)量,遇到這種情況,應(yīng)如何解決?

先看常規(guī)用法

from sqlalchemy import create_engine,Column,String,Integerclass 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 sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseengine = 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)# 動(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()

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

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

當(dāng)然,在插入數(shù)據(jù)和查詢數(shù)據(jù)的時(shí)候,會(huì)出現(xiàn)無法確定代碼中對(duì)應(yīng)字段的屬性。可以使用SqlAlchemy執(zhí)行sql實(shí)現(xiàn)插入

總結(jié)

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 水富县| 梁平县| 藁城市| 临潭县| 天气| 水城县| 乐山市| 休宁县| 绥芬河市| 合作市| 维西| 肇源县| 自贡市| 于田县| 绥芬河市| 娱乐| 阿拉善右旗| 永吉县| 南开区| 浪卡子县| 阿鲁科尔沁旗| 肥西县| 岳池县| 芮城县| 区。| 揭阳市| 原阳县| 砚山县| 玛多县| 遂宁市| 昔阳县| 太仓市| 监利县| 泗阳县| 界首市| 金华市| 天水市| 驻马店市| 沈阳市| 泰顺县| 郯城县|