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 图片验证码代码
Dec 07 Python
Python中的rjust()方法使用详解
May 19 Python
Python中字符串对齐方法介绍
May 21 Python
Django中使用group_by的方法
May 26 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
python内打印变量之%和f的实例
Feb 19 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 Python
Python中使用ipython的详细教程
Jun 22 Python
Python何绘制带有背景色块的折线图
Apr 23 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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
PHP线程的内存回收问题
2016/07/08 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
Python理解递归的方法总结
2019/01/28 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
暑假实习求职信范文
2013/09/22 职场文书
《自然之道》教学反思
2014/02/11 职场文书
2014年元旦感言
2014/03/06 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python