代码:
# it's an ajax request, so parameters are passed via GET method
def my_view(request):
my_param = request.GET['param'] // should I check for KeyError exception?
在 PHP 框架中,我通常必须检查参数是否存在,如果不存在则将用户重定向到某个地方。但是在 Django 中,不存在的参数会导致 500 错误页面,这似乎是所需的行为。那么可以保留代码原样还是有更好的做法?我是否应该始终使用像/myaction/paramvalue/这样的标准参数传递而不是/myaction?param_name=param_value(为 ajax 请求构建这样的 URL 有点困难)?
最佳答案
您的服务器不应产生 500 错误页面。
您可以通过以下方式避免错误:
my_param = request.GET.get('param', default_value)
或:
my_param = request.GET.get('param')
if my_param is None:
return HttpResponseBadRequest()
关于python - Django:request.GET 和 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845582/