首页 > 解决方案 > 如果我可以使用 post 为什么要使用 put 方法

问题描述

http 方法究竟是如何工作的。

两个视图功能做同样的事情

django代码:

//post method
def create1_post(request):
   if request.method=="POST":
      any_model=AnyModel(title="example")
      any_model.save()

//put method
def create2_post(request):
   if request.method=="PUT":
      any_model=AnyModel(title="example")
      any_model.save()



我读了很多关于 http 方法的内容,但我学到的只是 PUT 方法用于更新或创建资源,POST 方法用于创建资源

现在我很困惑。如果我可以使用 python 编辑和创建模型为什么我需要使用 put 或任何其他 http 方法

标签: pythondjangohttpdjango-modelshttp-method

解决方案


根据 HTTP 规范,PUT 方法旨在用于幂等操作。这意味着 PUT 请求可以发送一次或多次,并且在两种情况下服务器上的更改都是相同的。

典型的例子是 POST 用于创建对象,而 PUT 用于更新现有对象。发送两次 POST 会创建两个新对象,发送两次 PUT 只会将对象更新到相同状态两次。

考虑这种差异并使用正确的 HTTP 动词很重要,因为浏览器和框架使用幂等性假设来进行缓存。


推荐阅读