• 【python】用 sqlacodegen 将存在的数据库表 转化成model.py


    Flask的sqlalchemy对数据库表的模型提供了很多易用的方法。为了使用这些内容,需要将数据库表按照Flask识别的格式创建成Model,但是一般我们都是在已经创建好的数据库环境中开发Python代码,对于已经存在的数据库表,可以通过以下方式来生成models.py

    首先,安装

    pip install sqlacodegen

    然后,在命令行执行

    [python] view plain copy
     
     print?
    1. sqlacodegen --noviews --noconstraints --noindexes --outfile d:\models.py mysql://test:test@122.30.100.12:3388/test  

    --noviews 不对视图生成model

    --outfile 后面跟的是将生成的代码输出到哪个文件保存

    详细的参数信息可以查看帮助

    [python] view plain copy
     
     print?
    1. sqlacodegen --help  

    生成的文件就可以使用了,例如:

    [python] view plain copy
     
     print?
    1. import models  
    2. from sqlalchemy import Table, Column, Integer, String, Date, Float, create_engine  
    3. import config  
    4. from sqlalchemy.orm import sessionmaker  
    5. # DB class  
    6. import os,sys,inspect  
    7.   
    8. db = create_engine(config.DB_URI)  
    9.   
    10. S=sessionmaker(bind=db)  
    11. s=S()  
    12. u=s.query(DhBuyerTradeOrderPlace10).first()  
    13. if __name__ == '__main__':  
    14.     print u  
    15.     print u.username  
    16.     print "**************"  
    17.     classlist = []  
    18.     for name, obj in inspect.getmembers(models):  
    19.         if inspect.isclass(obj):  
    20.             print name  
    21.             print obj  
    22.             classlist.append((name.lower(),obj))  
    23.     print classlist  
    24.     print dict(classlist)  
    25.     classdict = dict(classlist)  
    26.     u=s.query(classdict['dhalbumsget10']).first()  
    27.     print u.username  
    28.     print u.password  
    29.     u=s.query(classdict['dhalbumsget10']).all()  
    30.     print u[0].username  
  • 相关阅读:
    一本通1281:最长上升子序列 暨 LIS DP求解
    STL初步
    【洛谷P3369】【模板】普通平衡树
    【洛谷P4859】已经没有什么好害怕的了
    【CF961G】Partitions
    【洛谷P4718】【模板】Pollard-Rho算法
    【LOJ#143】质数判定
    【CF917D】Stranger Trees
    【洛谷P3700】小Q的表格
    【洛谷P4245】【模板】任意模数多项式乘法
  • 原文地址:https://www.cnblogs.com/yanglang/p/7428884.html
Copyright © 2020-2023  润新知