python 用 sqlacodegen 將存在的數據庫表 轉化成model.py

Flask的sqlalchemy對數據庫表的模型提供了很多易用的方法。爲了使用這些內容,需要將數據庫表按照Flask識別的格式創建成Model,但是一般我們都是在已經創建好的數據庫環境中開發python代碼,對於已經存在的數據庫表,可以通過以下方式來生成models.py

首先,安裝

pip install sqlacodegen
然後,在命令行執行

sqlacodegen --noviews --noconstraints --noindexes --outfile d:\\models.py mysql://test:[email protected]: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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章