我有一個Flask應用程序,它將一些值存儲在數據庫中。這些來自HTML表單。其中有些是添加到瓶的會話,使用下面的代碼:從Flask會話中檢索值時發生KeyError
session['userID']=str(cur_var.getvalue())
我有一個調試HTML頁面只顯示無論是存儲在當前會話。渲染這個頁面的代碼如下:
@app.route('/debug/')
def debug():
return str(session)
一旦我打開這個頁面,
<securecookiesession {'usercoord': 7.0,'userid': '53.0'}></securecookiesession>
對於我明白了,我會肯定有一個userid
關鍵。
然而,當我的瓶的應用是在試圖檢索當前會話的用戶ID的另一個(未着色)網址: new_address.append(float(session['userid']))
我收到以下錯誤:
<title>KeyError: 'userid' // Werkzeug Debugger</title>
此外,我做了一個非常簡單的網頁,應該只打印session['userID']
。我用下面的代碼在我的瓶的應用:
@app.route('/print/')
def printing():
return render_template('print.html', printing=session['userid'])
這是print.html模板:
{% extends "layout.html" %}
{% block content %}
{{ printing }}
{% endblock %}
我們得到以下錯誤:
builtins.KeyError
KeyError: 'userid'
我已經嘗試過這同樣的邏輯在一個小得多的應用程序,它工作得很好。我的錯誤在哪裏可以在這裏?
非常感謝您提供的任何幫助。
P.S. 如果它有任何用處,我正在使用jQuery處理網頁和我的Flask應用程序之間的交互,並使用AJAX發佈數據。
UPDATE
改造項目將其降低到一個更簡單的一個後,我發現,有時(是有原因的,我不明白),增加一個新的值到燒瓶會議將無法正常工作。舉例來說,如果我有這行代碼:
session['coordid']=float(cur_var.getvalue())
在我print.html頁檢查str(session)
的價值,我沒有看到關鍵coordid
。