flask创建mysql表_请教一下,flask-sqlalchemy 怎么动态创建数据表?

首先你需要动态地创建一个表结构:

tb_name = 'tb_test'

pk_col = db.Column('tid', db.Integer, primary_key=True, autoincrement=True)

name_col = db.Column('name', db.String(32), nullable=False)

...

tb = db.Table(tb_name, db.metadata, pk_col, name_col, ...)

然后在数据库中创建这个表:

db.metadata.create_all(bind=db.engine, tables=[tb])

如果你想要有一个Model的话,可以将一个类和table映射一下:

# 根据tb_name构造一个类名

class_name = tb_name.title().replace('_', '') + 'Model'

# 创建类

TbTestModel = type(class_name, (object,), {

'__init__': lambda self, name: setattr(self, 'name', name)

})

# 对应的硬编码

# class TbTestModel(object):

# def __init__(self, name):

# self.name = name

db.mapper(TbTestModel, tb)

TbTestModel.query = db.session.query(TbTestModel)

然后就可以愉快地使用TbTestModel进行查询了:

test = TbTestModel('Tom')

db.session.add(test)

db.session.commit()

TbTestModel.query.filter(TbTestModel.name == 'Tom').first()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值