私のフラスコ Web アプリケーションでは、セッション処理にビーカー ライブラリを使用しています。次のコードでは、なんらかの理由で実稼働サーバーが例外を発生させますが、私のローカル PC は問題なく動作します。
import sys
...
try:
beaker_session = request.environ['beaker.session']
beaker_session['user_id'] = user.id
beaker_session.save()
except:
flash(sys.exc_info()[0])
return render_template('main/login.html')
ローカル コンピューターは、例外なく、期待どおりにセッションを保存します。本番サーバー (RedHat OpenShift) は、「beaker_session.save()」行で正確にエラーを発生させます。しかし、フラッシュ メッセージでログイン ページを表示する代わりに、Internal Server Error 500 がスローされます。ビーカーのバックエンド URL (mysql db) を確認しましたが、コードの他の部分で機能するため、新しく登録したユーザーを永続化するため、問題はありません。だから、私の質問は 1) なぜ except part が機能しないのですか? 2) ビーカーがセッションを保存できない理由。ありがとうございました。