我正在完成Flask教程,并且只想澄清会话对象的.pop属性到底是什么以及为什么它会采用'无'参数。
@app.route('/logout')
def logout():
session.pop('logged_in', None)
flash('You were logged out')
return redirect(url_for('show_entries'))
答案 0 :(得分:17)
根据Flask's API,他们的Session
类是python Dict
的包装器。根据{{1}}的{{3}}:
dict.pop()
如果
pop(key[, default])
在字典中,请将其删除并返回其值,否则返回key
。如果未提供default
并且default
不在字典中,则会引发key
。
在这种情况下,教程会要求您将KeyError
作为None
值传递。