コード:
# 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?param_name = param_valueの代わりに/ myaction/paramvalue /のような標準のパラメーターを常に使用する必要があります(このようなURLを作成するのはちょっと難しいです) ajaxリクエストの場合)?
サーバーが500エラーページを生成することはありません。
次を使用してエラーを回避できます。
my_param = request.GET.get('param', default_value)
または:
my_param = request.GET.get('param')
if my_param is None:
return HttpResponseBadRequest()
はい、その場合はKeyError
を確認する必要があります。または、これを行うことができます:
if 'param' in request.GET:
my_param = request.GET['param']
else:
my_param = default_value
Paramが存在しない場合はデフォルト値を渡すのはどうですか?
my_param = request.GET.get('param', 'defaultvalue')