最近在学python的Django时,看到一句代码是这样写的:
name = request.POST.get('name', '')
request.POST.get,那它和直接request.post有什么关系或者说区别吗?查了一下,在stackoverflow有一个帖子大概是这么说的:如果使用request.POST['sth'],那么假如‘sth’没有在post内容中就会报错keyError;而使用request.POST.get('sth')时,会返回一个None而不是报错。所以,使用request.POST.get()就相当于:
try:
x = request.POST['sth']
except KeyError:
x = None
而且,request.POST.get()还能添加一个额外的默认参数,如:
request.POST.get('sth', 'defaultvalue')
这样如果'sth'没在post[]内容中时,就会return这个defaultvalue值。嗯,就这样!
同理,request.COOKIES.get()、request.GET.get()道理应该也都是一样的!
注意:1)request.POST()中的参数是字典中的key(js文件中字典的key)----描述有待考证
2)request.POST.get()中的第一个参数只能是表单中name属性的值
例:request.POST.get('item_text')
<input name="item_text" id="id_new_item" placeholder="Enter a to-do item"/>
3)request.GET.get()方法,注意是小括号,而不是中括号,若编写代码时,写成request.GET.get[ ],会报如下错误:
---------------------
转载:https://blog.csdn.net/xjian32123/article/details/78964085