Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌套列表项未从烧瓶会话中删除_Python_Flask - Fatal编程技术网

Python 嵌套列表项未从烧瓶会话中删除

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

我在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)

    # 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])