我试图在此上找到某种一致的规则,但找不到一个,所以我转向StackOverflow
在Django视图中,什么是更好的做法:在视图中间(或if-else语句)或少数视图的末尾使用return语句?为了进行比较,请考虑以下假设情况,在这种情况下,响应类型需要根据某些人为条件进行更改:
def example(request):
response = HttpResponse(content='500 Server error', status=403)
if request.user.username == 'wolf':
response = HttpResponse(content='No, bad wolf, no access', status=503)
elif request.method == 'GET':
response = render(request, 'barn/barn.html')
else:
data, status = get_barn_data(request.POST)
response = JsonResponse(data=data, status=status)
return response
vs
def example(request):
if request.user.username == 'wolf':
return HttpResponse(content='No, bad wolf, no access', status=403)
elif request.method == 'GET':
return render(request, 'barn/barn.html')
data, status = get_barn_data(request.POST)
return JsonResponse(data=data, status=status)
其中哪一个是首选? Django教程似乎介于两个变体之间。
我建议您使用最容易管理的方式。
我个人比较喜欢您的第二个示例,因为很明显,您将在那时返回,并且不会执行进一步的代码/检查。