为什么我们要检查请求是否为django Views.py中的Post?

时间:2019-03-13 09:48:02

标签: python django django-views

我是Django的初学者,因此在学习时发现了一些东西。

有些人正在进行请求检查

def register(request):
    if request.method =='POST':
        # Register user
        redirect()
    else:
        return render(request,'accounts/register.html')

所以我发现没有必要,因为操作和方法已经在我的HTML表单中指定了。

<form action="{% url 'register' %}" method="POST">

对我而言,这是没有意义的,因为我们仅将帖子发布为注册请求。

我错了吗?

谢谢您的时间。

2 个答案:

答案 0 :(得分:0)

您在这里同时使用GETPOST请求的视图。下面的代码给出了更多解释:

def register(request):
    if request.method =='POST':  # comes here when you are making a post request via submitting the form
        # Register user
        redirect()
    else:  # if you are making a get request, then code goes to this block
        return render(request,'accounts/register.html')  # this is for rendering the html page when you hit the url

答案 1 :(得分:0)

发出发布请求以将任何用户输入提交到服务器后端。为了简单地陈述您的查询,这是Web程序的基本流程:

  1. 每当用户通过输入url(https://example.com)访问站点时,就会将GET请求作为GET / [status_code]提交到服务器。因此,即使所请求的URL中的模板包含“ POST”格式,也要首先发出GET请求。
  2. 现在,如果用户填写表单并使用POST方法提交数据,则服务器将以POST / [status_code]的身份收到请求。

因此,要处理两种类型的请求,您都需要检查正在发出的请求方法。 我想我已经回答了您的问题。