データベースに値を格納するFlaskアプリケーションがあります。これらはHTML形式のものです。これらのいくつかは、次のコードを使用して、フラスコのセッションに追加されます。Flaskセッションから値を取得する際のKeyError
session['userID']=str(cur_var.getvalue())
私は現在のセッションのみに格納されているものを示してデバッグHTMLページを持っています。次のようにこのページをレンダリングするためのコードは次のとおりです。私は、このページを開いて私が理解するために
<securecookiesession {'usercoord': 7.0,'userid': '53.0'}></securecookiesession>
@app.route('/debug/')
def debug():
return str(session)
たら、私のセッションは間違いuserid
キーを持っています。 new_address.append(float(session['userid']))
私は次のエラーを取得:さらに
<title>KeyError: 'userid' // Werkzeug Debugger</title>
を、私は私のフラスコアプリケーションは、現在のセッションからユーザーIDを取得しようと、別の(レンダリングされていない)URLにあるしかし
、 session['userID']
を印刷するだけの非常に簡単なWebページを作成しました。私はすでにこれを試してみました
builtins.KeyError
KeyError: 'userid'
:私は私のフラスコのアプリケーションで次のコードを使用します。
@app.route('/print/')
def printing():
return render_template('print.html', printing=session['userid'])
をそして、これはprint.htmlテンプレートです:これは、次のエラーが生成さ
{% extends "layout.html" %}
{% block content %}
{{ printing }}
{% endblock %}
はるかに小さなアプリケーションで同じロジックを使用していて、うまくいきました。私のエラーはどこにありますか?
ご協力いただきありがとうございます。
P.S. これは、私のウェブページとFlaskアプリケーションとのやりとりをjQueryで処理し、AJAXを使用してデータを投稿する処理です。
UPDATE
1非常に簡単にそれを軽減するためのプロジェクトをリメイクした後、私は時々フラスコセッションに新しい値を追加し、(私は理解していない理由のために)動作しませんことを発見しました。私はこのコード行含まれている場合たとえば、:
session['coordid']=float(cur_var.getvalue())
をそして、私のprint.htmlページにstr(session)
の値をチェックし、私はキーcoordid
が表示されません。