Приложение
My Flask имеет следующий маршрут, который отображает сетку изображений вместе с WTForm для пользовательского ввода. Мое желаемое поведение - сохранить текущий образец изображений, когда форма отправлена, но недействительна. Моя идея заключалась в том, чтобы сохранить образец из последнего запроса GET в прокси flask .session. Однако, когда образец считывается из session
, возвращается пустой список.
Я установил тип сеанса на filesystem
в конфигурации приложения. Я читал, что данные, хранящиеся в сеансе, на самом деле записываются в файлы cookie и поэтому должны быть JSON -сериализованы, но, поскольку мы имеем дело со списком строк, это не проблема.
@app.route('/', methods=['GET', 'POST'])
@login_required
def hello():
input_form = TagForm()
data_index = g._index
if request.method == 'GET':
sample = sampling.sample(16, data_index)
print('storing sample')
session['curr_sample'] = sample
print('stored sample:')
print(session['curr_sample'])
elif request.method == 'POST':
print('reading sample')
sample = session['curr_sample']
print('stored sample:')
print(session['curr_sample'])
if input_form.validate_on_submit():
# commit tag to db
return redirect(url_for('hello'))
else:
flash('Could not commit.', 'danger')
return render_template('grid.html', sample=sample, form=input_form)
Вот вывод с сервера:
storing sample
stored sample:
['2_3_3.png', '2_11_15.png', '2_11_15.png', '2_14_15.png', '2_17_11.png', '2_11_11.png', '2_18_15.png', '2_10_0.png', '2_7_12.png', '2_3_2.png', '2_9_15.png', '2_19_12.png', '2_17_12.png', '2_5_11.png', '2_10_2.png', '2_11_11.png']
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_11_11.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_17_12.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_5_11.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_9_15.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_3_2.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_10_2.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_18_15.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_11_15.png HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2020 15:08:48] "GET /cdn/2_3_3.png HTTP/1.1" 200 -
reading sample
stored sample:
[]
127.0.0.1 - - [07/Aug/2020 15:09:40] "POST / HTTP/1.1" 302 -