Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2018 17:15:30

Sunshine
Зарегистрирован: 2018-04-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

Извиняюсь если такая тема уже существует, просто тем очень много.. но так и не нашел. Я по get запросу в view.py выдаю некоторые данные, вот код:

 def testable(request, t_id=1):
    q_id = request.GET.get('q_id')
    question = Question.objects.get(test_id=t_id, number=q_id)
    answers = Answer.objects.filter(answer_question_id=question.question_desc.pk)
    return render_to_response('test.html', {'question': question, 'answers': answers})
И соответственно в ссылке, по мимо самого адреса отображается и запрос.
Как его скрыть? Или может есть другой способ сделать то, что я хочу.

Я django совсем недавно начал заниматься… прошу с понимаем отнестись, если вопрос совсем глупый

Отредактировано Sunshine (Апрель 7, 2018 17:18:33)

Офлайн

#2 Апрель 7, 2018 19:22:27

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

переделывайте на POST запрос как пример



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 7, 2018 20:24:10

Sunshine
Зарегистрирован: 2018-04-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

Как понять на POST запрос? У меня сейчас просто на кнопке ссылка с запросом в конце

 ?q_id=1

Офлайн

#4 Апрель 7, 2018 20:40:02

Sunshine
Зарегистрирован: 2018-04-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

Как я понял, то POST запросы делаются только с форм, а у меня формы никакой нету, мне надо чтобы на кнопку посылался запрос и при этом его бы не было видно в адресной строке

Офлайн

#5 Апрель 7, 2018 20:49:41

Sunshine
Зарегистрирован: 2018-04-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

Может можно отправить запрос, обработать его, а затем как-то скрыть его в адресной строке?

Офлайн

#6 Апрель 8, 2018 10:47:43

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

мда…

а зачем вам скрывать это?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Апрель 8, 2018 22:25:55

Sunshine
Зарегистрирован: 2018-04-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

Решил с помощью POST запросов. Скрывать за тем, чтобы пользователь сам не мог ввести

Офлайн

#8 Апрель 9, 2018 10:28:52

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

ммм ну как решение “от дурака” ок, сработает. Серьезную защиту вы не получите - все что отсылается легко можно посмотреть средствами разработчика в браузере.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Апрель 12, 2018 14:02:11

Elaphe
Зарегистрирован: 2015-02-04
Сообщения: 125
Репутация: +  5  -
Профиль   Отправить e-mail  

Скрыть get запрос в адресной строке

Как я понимаю, речь идет о том, чтобы нельзя было посмотреть страницы с “чужими” id.
В таких случаях айдишник в строке ссылки шифруется, как описано здесь: Cryptographic signing
То есть в шаблон страницы, где у вас кнопка, вы передаете не айдишник, а зашифрованную строку.
И во вьюхе страницы, на которую переходит пользователь, расшифровываете ее и получаете id
Но правильнее, конечно, такие вещи решать через систему пермишенов.

Отредактировано Elaphe (Апрель 12, 2018 14:02:36)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version