gls*_*lss 22 python django django-urls
码:
# 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?
Run Code Online (Sandbox Code Playgroud)
在PHP框架中,我通常必须检查存在的参数,如果不存在,则将用户重定向到某个地方.但在Django中,未出现的参数会导致500错误页面并且似乎需要行为.那么按原样保留代码还是有更好的实践可以吗?我应该总是使用像/ myaction/paramvalue /而不是/ myaction传递的标准参数吗?param_name = param_value(为ajax请求构建这样的URL有点困难)?
Ned*_*der 42
您的服务器永远不会产生500错误页面.
您可以使用以下命令来避免错误:
my_param = request.GET.get('param', default_value)
Run Code Online (Sandbox Code Playgroud)
要么:
my_param = request.GET.get('param')
if my_param is None:
return HttpResponseBadRequest()
Run Code Online (Sandbox Code Playgroud)
是的,KeyError在这种情况下你应该检查.或者你可以这样做:
if 'param' in request.GET:
my_param = request.GET['param']
else:
my_param = default_value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19345 次 |
| 最近记录: |