【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  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值