2017-07-14 21 views
-2

的每個出口都在數據庫中的數據我遵循的 http://flask-sqlalchemy.pocoo.org/2.1/quickstart/#quickstart快速啓動頁面提供的說明。 但是,即使這樣做自動沖洗後:虛假和自動提交:假的,數據的基礎上被擦除每次我退出終端。瓶的SQLAlchemy被刪除的終端

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' 
db = SQLAlchemy(app, session_options={"autoflush":False,"autocommit":False}) 

此配置後仍然每次我退出燒瓶終端DB數據 被擦除!

>>> users = User.query.all() 
[<User u'admin'>, <User u'guest'>] 
>>> admin = User.query.filter_by(username='admin').first() 
<User u'admin'> 

每次我退出燒瓶終端時,整個用戶表都不見了!

PS:有燒瓶和基於角令牌認證的任何博客,非常感謝:)隨着SQLAlchemy的設置!

+2

你有沒有加入創建對象的會話,並承諾會?你能發佈整個代碼嗎?您是否檢查過應用程序運行時數據是否寫入數據庫? – PerunSS

+0

幫助其他人幫助你並提供[mcve]。 –

+0

@IljaEverilä它解決了我使用Schema和db.Model的一切都很順利後,我正在做db.session.commit,但它仍然是刪除它。 –

回答

1

其最有可能的,因爲你沒有提交你添加到數據庫中。查看SQLAlchemy文檔中的this,並看到它說'將數據插入數據庫是一個三步過程'。你將不得不補充:

>>> db.session.add(admin) 
>>> db.session.commit() 

我相信這可以通過「自動提交」設置爲「True」來完成,但我還沒有嘗試過這種方法。

+0

它解決了我使用Schema和db.Model一切都很好後,我正在做db.session.commit,但它仍然是刪除它 –