在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  Linux  數(shù)據(jù)庫/ flask-sqlalchemy 的session問題?

flask-sqlalchemy 的session問題?

照著書上敲,一直會報這個錯誤,大概是說這個錯誤是說只能在同一個線程中使用吧?是不是要用到creat_scoped_session 呢,請各位大佬指點一下,謝謝!
圖片描述

sqlalchemy.exc.ProgrammingError: (sqlite3.ProgrammingError) SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 139878844028672 and this is thread id 139878951810816 (Background on this error at: http://sqlalche.me/e/f405)

回答
編輯回答
貓館

不了解你完整的業(yè)務(wù)場景,但是跨線程的話,一般是需要傳遞app_context的。

# 線程一,然后將這個參數(shù)傳遞給線程二
app_context = flask.current_app.app_context()

# 線程二,此處的app_context為線程一中傳遞來的參數(shù)
with app_context:
  ........
2017年9月23日 01:43
編輯回答
荒城

你的 flask 配置文件 config.py 中如果配置了

SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_COMMIT_ON_TEARDOWN = True

那么你就不再需要在程序中顯式的寫入 db.session.commit() 了。

2017年6月14日 03:32
編輯回答
玄鳥

把數(shù)據(jù)庫的uri改成這樣試試看:

SQLALCHEMY_DATABASE_URI = 'sqlite:///xxxx.db?check_same_thread=False'

有慕課網(wǎng)收費視頻,需要的看我主頁

2018年7月19日 20:53
編輯回答
尋仙

是說對象跨線程使用了?能說下完整的業(yè)務(wù)場景么?

2018年7月17日 13:19