SQLALCHEMY动态建表
业务背景:
- 客户可页面配置SQL表的新建, 修改, 删除
解决思路:
- 中间表存储客户化配置
- 根据配置参数新建表
- 利用sqlalchemy orm来进行操作
代码环境:
- python2
- flask
- flask_sqlalchemy
- postgres
实现难点:
- orm模型 中 model的创建
- orm模型 中 model的二次获取
- orm模型 中 model的属性获取
- orm模型 中 model的数据插入
难点解析:
orm模型 中 model的创建
- 表的创建(通过sqlalchemy生成)
- 原有逻辑中表的创建
class Test(db.Model):
"""测试表"""
__tablename__ = 'test'
id = db.Column('id', db.Integer, primary_key=True, autoincrement=True, nullable=False)
... ...
db.create_all()
- 实现思路:
- 创建db.Model 的子类
- 通过 type() 可以创建一个动态创建一个类
- 通过 type() 可以创建一个动态创建一个类
- 创建db.Model 的子类