本文链接:https://blog.csdn.net/xun527/article/details/87777576
request.POST是用来接收前端传过来的数据

一、request.POST.get('sth')与 request.POST ['sth'] - 区别
request.POST['sth']KeyError如果'sth'不在,将提出异常request.POST。

request.POST.get('sth')将返回None如果'sth'不在request.POST。

此外,.get允许您提供默认值的附加参数,如果该键不在字典中,则返回该参数。

例如,request.POST.get('sth', 'mydefaultvalue')

这是任何python字典的行为,并不是特定的request.POST。

二、这两个片段在功能上是相同的:
第一个片段:

try:
x = request.POST['sth']
except KeyError:
x = -1

第二个片段:
x = request.POST.get('sth', -1)
如果数值不存在的话,我们可以指定显示的默认值:

x = request.POST.get('sth', 'default_value')

这里我们可以拿字典对象来进行理解:

list_test = {'a': 1, 'b': 2}

list_test.get('a')  # 得到结果1
list_test.get('c')  # 得到结果none
list_test.get('c', 3)  # 得到设定的默认值3
list_test['b']   # 得到结果 2
list_test['c']   # 返回一个Keyvalue 错误类型
三:正常字典访问和使用.get()访问它的主要区别:
使用类似request.POST['sth']意愿的东西 会出现一个关键错误,如果不存在''sth'。但是使用get()方法字典也会为您提供更好的错误处理

request.POST.get('sth')
将返回没有键是'sth不存在',并且通过给第二个参数get()将返回它作为默认值。

data = request.POST.get('sth','my_default_value')
如果'sth'键不存在,则数据中的值将为my_default_value。这是使用get()方法优于普通字典访问的优势。

参考:https://stackoverflow.com/questions/12518517/request-post-getsth-vs-request-poststh-difference

【django学习】request.POST与request.POST.get两者主要区别的更多相关文章

  1. Django学习系列之request对象

    先来一个简单的实例 urls.py from django.conf.urls import url from django.contrib import admin from cmdb import ...

  2. Django学习——静态文件配置、request对象方法、pycharm如何链接数据库、Django如何指定数据库、Django orm操作

    静态文件配置 # 1.静态文件 网站所使用的已经提前写好的文件 css文件 js文件 img文件 第三方文件 我们在存储静态文件资源的时候一般默认都是放在static文件夹下 # 2.Django静态 ...

  3. django之视图系统 views.py-->主要内容(FBV和CBV、dispath、request对象和request.FILES、JsonResponse)

    一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 一 视图的实现可以基于两种方法: 1 基于函数的形式 FBV 使用装饰器装饰FBV  直接在上 ...

  4. django之def get_response(self, request):

    class BaseHandler(object)方法get_response,控制着处理请求的流程,调用中间件,返回请求. def get_response(self, request): &quo ...

  5. 转 #HTTP协议学习# (一)request 和response 解析

    http://www.cnblogs.com/bukudekong/p/3834020.html #HTTP协议学习# (一)request 和response 解析   注:本文转自:http:// ...

  6. django - request.POST和request.body获取值时出现的情况

    django request.POST / request.body 当request.POST没有值 需要考虑下面两个要求 1.如果请求头中的: Content-Type: application/ ...

  7. DRF (Django REST framework) 中的Request 与 Response

    DRF中的Request 与 Response 1. Request - REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST f ...

  8. django - request.raw_post_data 与 request.body

    request.raw_post_data 重命名成了 request.body - 在1.3版本之后. 这是当时 起票 的讨论内容:https://code.djangoproject.com/ti ...

  9. Python & Django 学习笔记

    最近在学校Python和Django.在学习中遇到了种种的问题,对于一个新手来说,下面的问题可能都会遇到.希望能帮助到那些和我一样的人!!0.python-dev安装(ubuntu)  apt-get ...

随机推荐

  1. SQL SERVER-日期按时区转换

    SELECT SWITCHOFFSET('2019-07-19 08:35:06.637','+08:00')

  2. Android笔记(三十七) 如何停止AsyncTask?

    当我们加载一张图片的时候,加载的过程中我们想要取消操作,该怎么办呢?调用Asynctask的 cancel() 方法就可以了,我们看代码: 先看一个例子: MainAciticty.java pack ...

  3. h3c 802.11协议的发展进程

  4. [http] http body中chunked数据的编码格式

    一 我们知道,http response的body可以使用chunked编码.这个时候不需要显示的 指定content-length来标记结尾. 如: 我们可以见到编码的chunked字样,并且没有看 ...

  5. 使用ImageMagick在Linux系统上截图

    ImageMagick安装指令: sudo apt-get install imagemagick 安装完成后,输入 import screenshot.png 命令就可以开始截图.此时鼠标图标会变成 ...

  6. HashMap简介以及hashCode写法的建议

    映射表Map Map也叫映射表或者字典,Map中存储的元素是一个键值对key-value,他们共同包装在Entry<K,V>对象中.我们能通过key直接获取value,就像查字典一样. J ...

  7. MySQL增加行号rownum

    select * from ( select @rownum:=@rownum+1 AS rownum, app_t.* from ( select * from app_custom where 1 ...

  8. Optaplanner与Google OR-Tools的区别

    在规划相关的项目工作中,近两年我们的项目主要使用的是Optaplanner作为规划引擎,其核心也是一个的规划求解器(Solver).但作为另一个著名开源求解器Google OR-Tools(下称OR- ...

  9. 题解 洛谷P5380 【[THUPC2019]鸭棋】

    就是一道大模拟. 首先,来解释一下复杂的题意: 给你一些棋子,每个棋都有不同的走法,开局是回归原位. 接下来,题目会给你一个虚拟的走子操作(注意不一定真实),你所需要判断当前操作是否正确.若不正确,输 ...

  10. head meta属性整理笔记

    最近做这个站点http://zhimo.yuanzhumuban.cc/,百度一直出现转码问题,很头疼,通过一周时间研究meta属性,达到了代码优化的效果,在此做一些笔记. <head> ...