Python SqlAlchemy动态添加数据表字段实例解析


Posted in Python onFebruary 07, 2018

本文研究的主要是Python SqlAlchemy动态添加数据表字段,具体如下。

我们知道使用SqlAlchemy创建类来映射数据表,类属性等于数据库字段,但有时候要在我们创建表的时候,不确定数据表字段数量,遇到这种情况,应如何解决?

先看常规用法

from sqlalchemy import create_engine,Column,String,Integer
class Mybase(Base):
  #表名
  __tablename__ ='mycars'
  #字段,属性
  myid=Column(String(50), primary_key=True)
  price=Column(String(50))

上述代码是创建mycars数据表,字段分别为myid和price,字段数量是固定,那么要实现动态创建数量不明确的字段,代码如下:

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)

# 动态添加字段
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()来实现动态添加字段,而且字段名可根据实际命名,comment是字段注释,这个只有SqlAlchemy 1.2版本才有的功能 (SqlAlchemy 1.2 安装 :pip install ?pre sqlalchemy)

运行结果:

Python SqlAlchemy动态添加数据表字段实例解析

当然,在插入数据和查询数据的时候,会出现无法确定代码中对应字段的属性。可以使用SqlAlchemy执行sql实现插入

总结

以上就是本文关于Python SqlAlchemy动态添加数据表字段实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python读写ini文件示例(python读写文件)
Mar 25 Python
python基础教程之常用运算符
Aug 29 Python
Python3字符串学习教程
Aug 20 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
python中virtualenvwrapper安装与使用
May 20 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
python实现输入数字的连续加减方法
Jun 22 Python
opencv python 傅里叶变换的使用
Jul 21 Python
python异常触发及自定义异常类解析
Aug 06 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
python实现简单的五子棋游戏
Sep 01 Python
Python实现抢购IPhone手机
Feb 07 #Python
浅谈python可视化包Bokeh
Feb 07 #Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 #Python
全面分析Python的优点和缺点
Feb 07 #Python
Tensorflow环境搭建的方法步骤
Feb 07 #Python
Python pandas常用函数详解
Feb 07 #Python
详解python字节码
Feb 07 #Python
You might like
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
自制PHP框架之设计模式
2017/05/07 PHP
jQuery 三击事件实现代码
2013/09/11 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
tab栏切换原理
2017/03/22 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
Python通过select实现异步IO的方法
2015/06/04 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
使用python实现个性化词云的方法
2017/06/16 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python阶乘求和的代码详解
2020/02/14 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
合伙经营协议书范本
2014/04/18 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2015年加油站工作总结
2015/05/13 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js