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实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
python的类方法和静态方法
Dec 13 Python
介绍Python中的fabs()方法的使用
May 14 Python
python定向爬取淘宝商品价格
Feb 27 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
python中for in的用法详解
Apr 17 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
Python Selenium库的基本使用教程
Jan 04 Python
Python LMDB库的使用示例
Feb 14 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导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python OpenCV实现视频分帧
2019/06/01 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
django实现支付宝支付实例讲解
2019/10/17 Python
python 爬取小说并下载的示例
2020/12/07 Python
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
2013年保送生自荐信格式
2013/11/20 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
九年级物理教学反思
2014/01/29 职场文书
精彩的广告词
2014/03/19 职场文书
高三家长寄语
2014/04/03 职场文书
会计岗位说明书
2014/07/29 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
薪资证明范本
2015/06/19 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
Win11查看设备管理器
2022/04/19 数码科技
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS