在 Django 视图中处理多个 POST 请求

Posted

技术标签:

【中文标题】在 Django 视图中处理多个 POST 请求【英文标题】:Dealing with multiple POST requests in Django views 【发布时间】:2014-09-04 10:27:10 【问题描述】:

我想知道是否可以在 Django 视图方法中处理不同的 POST 请求。比如下面的代码:

def my_view(request):
    if request.method == "POST":
        if request.POST['value_one']:
            # Do stuff here

        elif request.POST['value_two']:
            # Do stuff here

        elif request.POST['value_three']:
            # Do stuff here

        else:
            # Do something else

是否可以在 Django 视图中执行类似的操作?如果不是,那么处理这种情况的最佳方法是什么?

【问题讨论】:

是的,这是可能的。当表单中有多个按钮时,这是一种常见的情况。 继续,这是用 if 语句完成的正常操作 我已经尝试过了,我得到一个“MultiValueDictKeyError”错误。 【参考方案1】:

从技术上讲,这不是“处理多个发布请求”(这是一种废话——一个视图一次只能处理一个请求——无论采用何种方法——一次),而是“处理来自发布请求的不同值” (或来自 GET 请求 FWIW,它没有太大变化)。

现在回答您的问题:是的,当然这是可能的 - 如果您自己尝试过,您会发现 - 并且是一种相当常见的模式。当某些键不是请求正文 (POST) 或查询字符串 (GET) 的一部分时,您可能只想使用 request.POST.get("whatever", default) 来避免处理 KeyError

【讨论】:

以上是关于在 Django 视图中处理多个 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章

56. Django 2.1.7 处理ajax请求GETPOST请求

如何在 Django 中处理并发请求?

Django 异步视图中的多个并发请求

我用django接收post请求结果为空

django rest框架中多个视图的相同验证

Django 之 Views视图理解