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爬虫实现百度图片自动下载
Feb 04 Python
python正则表达式之对号入座篇
Jul 24 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
Django 解决上传文件时,request.FILES为空的问题
May 20 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
python 如何调用远程接口
Sep 11 Python
Python Merge函数原理及用法解析
Sep 16 Python
python 对图片进行简单的处理
Jun 23 Python
一篇文章弄懂Python中的内建函数
Aug 07 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和XSL stylesheets转换XML文档
2006/10/09 PHP
一个实用的php验证码类
2017/07/06 PHP
CI框架附属类用法分析
2018/12/26 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
python获取linux系统信息的三种方法
2020/10/14 Python
python实现简单的学生管理系统
2021/02/22 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
中软国际Java程序员笔试题
2014/07/19 面试题
网上书店创业计划书
2014/01/12 职场文书
施工员岗位职责
2014/03/16 职场文书
迎七一演讲稿
2014/09/12 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
SQL Server中的游标介绍
2022/05/20 SQL Server
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle