Flask的sqlalchemy對數據庫表的模型提供了很多易用的方法。為了使用這些內容,需要將數據庫表按照Flask識別的格式創建成Model,但是一般我們都是在已經創建好的數據庫環境中開發Python代碼,對於已經存在的數據庫表,可以通過以下方式來生成models.py
首先,安裝
pip install sqlacodegen
然后,在命令行執行
- sqlacodegen --noviews --noconstraints --noindexes --outfile d:\\models.py mysql://test:test@122.30.100.12:3388/test
--noviews 不對視圖生成model
--outfile 后面跟的是將生成的代碼輸出到哪個文件保存
詳細的參數信息可以查看幫助
- sqlacodegen --help
生成的文件就可以使用了,例如:
- import models
- from sqlalchemy import Table, Column, Integer, String, Date, Float, create_engine
- import config
- from sqlalchemy.orm import sessionmaker
- # DB class
- import os,sys,inspect
- db = create_engine(config.DB_URI)
- S=sessionmaker(bind=db)
- s=S()
- u=s.query(DhBuyerTradeOrderPlace10).first()
- if __name__ == '__main__':
- print u
- print u.username
- print "**************"
- classlist = []
- for name, obj in inspect.getmembers(models):
- if inspect.isclass(obj):
- print name
- print obj
- classlist.append((name.lower(),obj))
- print classlist
- print dict(classlist)
- classdict = dict(classlist)
- u=s.query(classdict['dhalbumsget10']).first()
- print u.username
- print u.password
- u=s.query(classdict['dhalbumsget10']).all()
- print u[0].username