Python 嵌套列表项未从烧瓶会话中删除
我在Flask中有一个简单的路由,我想在其中向会话字典列表值添加和删除项。向其中添加内容很好,但似乎不会删除项目 我曾尝试添加Python 嵌套列表项未从烧瓶会话中删除,python,flask,Python,Flask,我在Flask中有一个简单的路由,我想在其中向会话字典列表值添加和删除项。向其中添加内容很好,但似乎不会删除项目 我曾尝试添加session.modified=True,但似乎没有帮助 我做错了什么 @app.route('/todo/<profile_id>') def todo(profile_id): kw = request.args.get('kw', None) lp = request.args.get('lp', None) # remov
session.modified=True
,但似乎没有帮助
我做错了什么
@app.route('/todo/<profile_id>')
def todo(profile_id):
kw = request.args.get('kw', None)
lp = request.args.get('lp', None)
# remove if it exists
try:
session[lp].pop(kw)
session.modified = True
return True
except:
pass
# add if it doesn't exist
if kw and lp:
try:
session[lp].append(kw)
except:
session[lp] = [kw]
return '{}'.format(session[lp])
@app.route(“/todo/”)
def todo(配置文件id):
kw=请求.args.get('kw',无)
lp=request.args.get('lp',无)
#如果存在,请删除
尝试:
会话[lp].pop(千瓦)
session.modified=True
返回真值
除:
通过
#如果不存在,请添加
如果功率和低压:
尝试:
会话[lp]。追加(千瓦)
除:
会话[lp]=[kw]
返回“{}”。格式(会话[lp])
假设要存储通用对象,则需要使用remove()而不是pop()。
之后的问题是返回True,这不是视图的有效返回类型
作为sesh从flask导入会话
@app.route(“/todo/”)
def todo(配置文件id):
kw=请求.args.get('kw',无)
lp=request.args.get('lp',无)
#如果存在,请删除
尝试:
打印(sesh[lp])
sesh[lp]。移除(kw)
sesh.modified=True
打印(“rem”,sesh)
返回{}。格式(sesh[lp])
例外情况除外,如e:
打印(e)
#如果不存在,请添加
如果功率和低压:
尝试:
sesh[lp]。追加(千瓦)
除:
sesh[lp]=[kw]
打印(“添加”,sesh)
sesh.modified=True
返回{}。格式(sesh[lp])
是的,返回值为真。谢谢:)
from flask import session as sesh
@app.route('/todo/<profile_id>')
def todo(profile_id):
kw = request.args.get('kw', None)
lp = request.args.get('lp', None)
# remove if it exists
try:
print(sesh[lp])
sesh[lp].remove(kw)
sesh.modified = True
print("rem", sesh)
return '{}'.format(sesh[lp])
except Exception as e:
print(e)
# add if it doesn't exist
if kw and lp:
try:
sesh[lp].append(kw)
except:
sesh[lp] = [kw]
print("add",sesh)
sesh.modified = True
return '{}'.format(sesh[lp])