#python #html #django
#питон #HTML #джанго
Вопрос:
Я хотел бы сохранить выбор пользователя из выпадающего меню в виде файла cookie. Я видел, как этот вопрос задавали раньше, но никогда полностью на python. Я хочу использовать эти два файла cookie для выполнения простого фрагмента кода, чтобы не было необходимости в использовании базы данных.
Вот мой текущий HTML — код:
lt;form role="form" method="post"gt; {% csrf_token %} lt;div class="form-group"gt; lt;label for="dog-names"gt;Choose a dog name:lt;/labelgt; lt;select name="dog-names" id="dog-names" onchange="getSelectValue"gt; lt;option value="rigatoni"gt;Rigatonilt;/optiongt; lt;option value="dave"gt;Davelt;/optiongt; lt;option value="pumpernickel"gt;Pumpernickellt;/optiongt; lt;option value="reeses"gt;Reeseslt;/optiongt; lt;option value="{{ current_name }}"gt; {{ current_name }}lt;/optiongt; lt;/selectgt; lt;br/gt; lt;labelgt;Current dog: {{ current_name }}lt;/labelgt; lt;/divgt; lt;button type="submit" value="Submit" class="btn btn-info"gt;Submitlt;/buttongt; lt;/formgt;
Питон
def cookies_test(request): template_name = 'cookies.html' current_name = "Rigatoni" # default name if request.method == 'GET': if 'name' in request.COOKIES: current_name = request.COOKIES['name'] elif request.method == 'POST': current_name = request.POST.get('name') response = render(request, 'test.html', { "current_name": current_name }) response.set_cookie('name', current_name) return response
Python работает, если я даю значение {{ имя_потока }} Все, что я хочу, это иметь возможность сохранять значение из выпадающего меню в переменной, чтобы я мог сохранить его в виде файла cookie
Буду признателен за любые советы 🙂
Комментарии:
1. Вместо файла cookie вы можете просто сохранить значение в сеансе, например
request.session["selection"] = selection_value
, а затем, когда вызывается представление, всегда проверятьrequest.session["selection"]
, присутствует ли оно, и использовать это значение. Этот механизм использует стандартный набор файлов cookie сеанса, установленный Django, и вам не нужно устанавливать свои собственные файлы cookie.