【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  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM