python - 如果我可以使用 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 方法
解决方案
根据 HTTP 规范,PUT 方法旨在用于幂等操作。这意味着 PUT 请求可以发送一次或多次,并且在两种情况下服务器上的更改都是相同的。
典型的例子是 POST 用于创建对象,而 PUT 用于更新现有对象。发送两次 POST 会创建两个新对象,发送两次 PUT 只会将对象更新到相同状态两次。
考虑这种差异并使用正确的 HTTP 动词很重要,因为浏览器和框架使用幂等性假设来进行缓存。
推荐阅读
- spring-boot - 春季启动启动错误
- java - 如何查找输入扫描仪的字符串是否在数组中?
- javascript - 即使使用 .then 和 location.reload,我的客户端也不会在 ajax put 后重新加载
- macos - 为 macOS High Sierra 安装 gnu plot
- magento2 - 如何在magento 2中设置时事通讯确认链接的到期
- reactjs - 索环拆分子问题(“警告:道具类型失败:提供给`Split`的`object`类型的无效道具`children`,需要一个数组。”)
- java - 如何在 Firebase 实时数据库中将记录从一个位置复制到另一个位置?
- php - 获取另一个下拉更改的下拉数据
- angular - 如何确保在 Angular 2+ 的同一表单组下默认未选中单选按钮?
- angularjs - 使用 api 时在 angularjs 中进行分页