Постоянная переменная: как мне между моими страничками передавать название вендора во Flask

263 просмотра
0
0 Комментариев

Добрый день, появился очень щепетильный вопрос . У меня есть база диалогов У которой есть вендор (Владелец самой базы или же от куда она у нас появилась)
Вопрос в чем как мне между моими страничками передавать название вендора , первое что пришло в голову это

<input name="vendor" value="{{ vendor }}" hidden>

Считывать его при каждом запросе

request.args.get('vendor')

и передевать дальше по цепечке при рендере шаблона как скрытое поле что может занять много кода .
второе предложение это использовать куки . в самом app.route(«/»)
написать функцию

cookie=request.cookies.get('vendor')
retrun resp.set_cookie('vendor', 'vendor.cookie.ru')
if cookie is not None
  retrun resp.set_cookie('vendor', 'vendor.cookie.ru')
else:
  return redirect("set_cookie")

Или же запихивать его в шлобальную переменую , может прикрутить логин к системе и в сесию складывать
Вопрос что быстрей и потом меньшу будет составлять проблем.


Добавить комментарий

1 Ответы

Python Опубликовано 14.12.2018
0

После небольшого раздумівания решил приьегнуть к методу с куки , на много проще
в кажлом обработчие поместил

vendor=get_vendor()
    if vendor is None: return redirect('set_cookie')

и еще есть вот такие 2 штуки

@app.route("/set_cookie", methods=['GET'])
def set_cookie():
    vendor=request.args.get('vendor')
    if vendor is None : return redirect('chose_vendor')
    redirect_to_index = redirect('/')
    response = current_app.make_response(redirect_to_index)
    response.set_cookie('vendor', value='author24.ru')
    return response
 
def get_vendor():
    cookie = request.cookies.get('vendor')
    if cookie is not None:
        return cookie
    else:
        return None

я подозреваю что меня могут захаять за то что я вінес бизнесовую переменную в куки , по доброму надо било би ее в сессию вписівать п прикрутить ее к g.user но єто метот работи Agile поєтому на отладку все потом.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up