SQLiteデータベースを使用してフラスコアプリケーションのサーバー側セッションを有効にしようとしています。私はFlask-Sessionのハードフォークであり、より積極的に維持されているFlask-Sessionstoreを使用しています。しかし、両方のライブラリを使用すると同じエラーが発生します。ここでapp.py
のための私のコードは次のとおりです。フラスコセッション:セッションテーブルの作成方法
from flask import Flask, session
from flask_sqlalchemy import SQLAlchemy
from flask_sessionstore import Session
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////Users/Johnny/DBs/test.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # quiet warning message
app.config['SESSION_TYPE'] = 'sqlalchemy'
Session(app)
@app.route('/')
def index():
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)
予想通り、私はpython app.py
すべてが起動し、実行してアプリケーションを実行すると。私はhttp://127.0.0.1:5000でインデックス・ページにアクセスしようとすると、しかし、私は次のエラーを取得する:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: sessions [SQL: 'SELECT sessions.id AS sessions_id, sessions.session_id AS sessions_session_id, sessions.data AS sessions_data, sessions.expiry AS sessions_expiry \nFROM sessions \nWHERE sessions.session_id = ?\n LIMIT ? OFFSET ?'] [parameters: ('session:xxx...', 1, 0)]
私がアプリケーションを実行する前に、このテーブルを作成する必要が表示されます。これどうやってするの?または、私のためのテーブルが見つからない場合にそれを作成する設定オプションがないのですか?
の試験例を見てみることができます
:だからあなたのようなものを持っている必要があります。しかし、その最後の 'session.app.session_interface.db.create_all()'は、まさに私が感謝のために探していたものです! –