Элемент вложенного списка не удаляется из сеанса Flask - PullRequest
0 голосов
/ 27 июня 2018

У меня есть простой маршрут во 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])

1 Ответ

0 голосов
/ 28 июня 2018

Предполагая, что вы хотите хранить универсальные объекты, вам нужно будет использовать remove () вместо pop (). После этого ваша проблема возвращает True, который не является допустимым типом возврата для представления. Представление Flask вызывает TypeError: объект 'bool' не вызывается

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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...