V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
renvip
V2EX  ›  Python

sqlalchemy 动态获取 model 类

  •  
  •   renvip · 2021-03-30 15:28:13 +08:00 · 1456 次点击
    这是一个创建于 1120 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT,程序会新增表,但这些表的数据结构一致,如何写一个方法,动态获取 model 类,然后使用 orm 进行表的增删改查。网上有一些,但是可能有坑和缺陷,问问大佬有没有实现过,避免造轮子。思路,定义一个 get_model(tablename)方法,传递表名,返回一个 model 类,然后可以用 model 类直接进行表的增删改查,至于创建新表,在方法里判断一下,这个表在数据库存在不存在,存在就不创建,不存在就创建。
    参考链接:base64
    aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phY2tlMTIxL2FydGljbGUvZGV0YWlscy84OTI5MjcyNg==
    aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pfT2JqZWN0L2FydGljbGUvZGV0YWlscy84MDExMTc0Ng==
    aHR0cHM6Ly93d3cuaXQ2MTAuY29tL2FydGljbGUvMTI5MjYwMzk0NjAxOTM5NzYzMi5odG0=
    3 条回复    2021-04-01 09:49:26 +08:00
    wonderay
        2
    wonderay  
       2021-03-31 16:15:25 +08:00
    "至于创建新表,在方法里判断一下,这个表在数据库存在不存在,存在就不创建,不存在就创建。"

    你是想通过表结构, 生成对应的 model, 既然表都不存在,model 也就无从生成, 那还怎么创建呢?
    renvip
        3
    renvip  
    OP
       2021-04-01 09:49:26 +08:00
    @wonderay 我可以使用 db.create_all()建表
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5317 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:26 · PVG 15:26 · LAX 00:26 · JFK 03:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.