request.method==”是什么意思;邮政「;在Django是什么意思?

request.method==”是什么意思;邮政「;在Django是什么意思?,django,post,request,Django,Post,Request,我在我的观点中经常使用这个东西,但我想知道这到底意味着什么 当我们编写request.method==“GET”或request.method==“POST”时会发生什么?request.method==“POST”的结果是一个布尔值-True如果用户当前的请求是使用HTTP“POST”方法执行的,则为False,否则(通常意味着HTTP“GET”),但也有其他方法) 你们可以阅读更多关于GET和POST的区别。简言之,POST请求通常用于表单提交——如果处理表单会改变服务器端状态(例如,在注册

我在我的观点中经常使用这个东西,但我想知道这到底意味着什么


当我们编写
request.method==“GET”
request.method==“POST”
时会发生什么?

request.method==“POST”的结果是一个布尔值-
True
如果用户当前的请求是使用HTTP“POST”方法执行的,则为
False
,否则(通常意味着HTTP“GET”),但也有其他方法)

你们可以阅读更多关于GET和POST的区别。简言之,POST请求通常用于表单提交——如果处理表单会改变服务器端状态(例如,在注册表单的情况下,将用户添加到数据库),则需要POST请求。GET用于普通HTTP请求(例如,当您在浏览器中键入URL时)和可在无任何副作用的情况下处理的表单(例如搜索表单)

该代码通常用于条件语句中,用于区分处理已提交表单的代码和显示未绑定表单的代码:

if request.method == "POST":
    # HTTP Method POST. That means the form was submitted by a user
    # and we can find her filled out answers using the request.POST QueryDict
else:
    # Normal GET Request (most likely).
    # We should probably display the form, so it can be filled
    # out by the user and submitted. 

下面是另一个使用Django表单库的示例:

from django.shortcuts import render
from django.http import HttpResponseRedirect

def contact(request):
    if request.method == 'POST': # If the form has been submitted...
        form = ContactForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...
            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = ContactForm() # An unbound form

    return render(request, 'contact.html', {
        'form': form,
    })

request.method
返回请求方法的类型,它可能是
GET、POST、PUT、DELETE
等。 返回后,您将其与字符串进行比较。 比较运算符始终提供布尔值(
True或False

有时,我们需要根据请求的方法类型处理功能

if request.method == "GET":
    # functionality 1
elif request.method == "POST":
    # functionality 2
elif request.method == "PUT":
    # functionality 3
elif request.method == "DELETE":
    # functionality 4
对于请求方法
GET
数据随url一起传递。 对于请求方法
POST
数据在主体内部传递。就安全方法类型而言,POST是更好的方法。

book\u id=book.objects.get(id=id) 如果request.method==“POST”:

    book_save == BookForm(request.POST, request.FILES, instance=book_id)
    if book_save.is_valid():

        book_save.save()

else:
    book_save = BookForm(instance=book_id)

y = {
    'form':book_save,
}

return render(request, 'pages/update.html', y)

我不知道为什么我被否决了。我真的很想知道这一点,我没有投你反对票,但是有很多关于堆栈溢出的问题可以解释GET和POST请求之间的区别。一旦您理解了这一点,您就会看到if语句将您的视图分为两个分支,一个用于GET请求(例如查看表单),另一个用于POST请求(例如提交表单)。非常感谢您提供的链接和解释:)如何检查POST中是否有数据?我的意思是,
if-request.method=='POST'和if-request.POST
什么时候会是真的,当我们得到POST并且POST中有一些数据时?1.11文档提出了另一个建议:“如果通过POST HTTP方法请求表单,但不包含表单数据,则请求可能会通过POST传入,并带有一个空的POST字典。因此,您不应该使用
if request.POST
检查POST方法的使用情况;相反,使用if
request.method==“POST”
“和该文档的来源:这并不能回答问题。