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的Django框架中forms表单类的使用方法详解
Jun 21 Python
使用Python绘制图表大全总结
Feb 11 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python使用asyncio包处理并发详解
Sep 09 Python
Python判断telnet通不通的实例
Jan 26 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
python数据归一化及三种方法详解
Aug 06 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 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初学入门
2006/11/19 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
Open and Print a Word Document
2007/06/15 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
python如何实现内容写在图片上
2018/03/23 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
迅雷Cued工作心得体会
2014/01/27 职场文书
社区维稳工作方案
2014/06/06 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
求职自我推荐信
2014/06/25 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
python中的3种定义类方法
2021/11/27 Python