sqlalchemy中用db.create_all()無法建表?
02-04
使用db.create_all()命令無法成功創建表,請問什麼原因會導致該問題,謝謝!
咳咳,我來回答你的問題,你需要在db.create_all()所在的文件裡面的頂部事先導入那些model,比如你可能需要這樣做from model.account import User,User的定義是def User(db.Model)這樣的,總之我可以了。
這個問題卡了我2小時,有可能是資料庫連接填錯了,你在python下看下db的配置就知道了;
python xxx shell
from xxx import dbdb可能是沒有導入相應model的緣故。
剛剛在看狗書。第50頁創建表的指導中,寫的是:
&>&>from hello import db
&>&>db.create_all()
因為教程中的class User直接在hello.py中定義的,所以能直接識別定義的model並自動生成。
如果你定義的model不在hello這個文件中,則需要如高票答案說的,顯式的導入model所在的py文件。如我為User model新建了一個model/user.py,所以我還要 from model import user。
import了之後,再調用db.create_all(),表就生成了。
非常感謝你的邀請,但實在抱歉,本人對sqlalchemy這個東西並不熟
推薦閱讀:
※遇到一個問題,請各位給講解一下sqlalchemy中的backref?
※如何理解python的sqlalchemy這種orm框架?
TAG:SQLAlchemy |