报错,没有找到_filter--Django中request.POST.get()语法和request.POST区别
报错,没有找到_filter
因为我最初开始代码是这样写的:
origin_params = request.GET['_filter']
如果_filter不存在,那么就会返回一个错误keyError defaultvalue值,而不是返回空(False),导致origin_params是个错误值,用于判断时,就会产生报错,无法进行if条件判断
修改成如下的方式:
origin_params = request.GET.get('_filter')
使用request.GET.get,如果_filter不存在,会返回为None(False),这样才能满足系统的基本逻辑:
当使用request.GET.get可以 相当于如下代码:
try:
x = request.GET['sth']
except KeyError:
x = None
那它和直接request.post有什么关系或者说区别吗?查了一下,在stackoverflow有一个帖子大概是这么说的:如果使用request.POST['sth'],那么假如‘sth’没有在post内容中就会报错keyError;而使用request.POST.get('sth')时,会返回一个None而不是报错。所以,使用request.POST.get()就相当于: