Простой вопрос о POST и GET-запросе - PullRequest
0 голосов
/ 16 февраля 2019

Я только начал изучать Django, следуя инструкции по sentdex.В ходе курса мы добавили модель User в нашу базу данных и создали функцию в нашем файле views.py:

def register(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():#si les champs sont OK : 
            user = form.save()
            login(request, user)
            return redirect("main:homepage")
        else: 
            for msg in form.error_messages: 
                print(form.error_messages[msg])

Но в этом фрагменте кода я не понимаю, откуда Django узнает,request.method имеет значение True или False.Это потому, что я создал форму с кнопкой «Отправить» в моем шаблоне?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

В этом случае request.method просто представляет метод HTTP, который использовался для доступа к вашему представлению.Например, вашей функции register может быть назначена конфигурация url, такая как: url(r'^register/', views.register), которая отображает входящий HTTP-запрос в ваше представление.Если у вас есть веб-форма с кнопкой «Отправить», вероятно, код веб-приложения отправляет запрос HTTP POST на ваш веб-сервер.

Django автоматически создает для вас объект request, поэтомувы можете проверить, как ваш запрос был сделан против веб-сервера.Для получения дополнительной информации о том, что еще включено в запрос, проверьте документы Django .

0 голосов
/ 16 февраля 2019

Невозможно точно сказать, что происходит в вашем случае, так как у нас нет вашего HTML, но в целом:

  • Когда вы создаете форму HTML, вы можете указать метод следующим образом <form method="POST"></form> или <form method="GET"></form>.Если вы не укажете значение по умолчанию GET.
  • Когда вы отправляете вашу форму, она отправляет данные, используя http-запрос указанного типа.Вот что читает Джанго.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...