首页 > 解决方案 > 视图中的返回语句应该结束还是中间?

问题描述

我试图在这方面找到某种一致的规则,但找不到,所以我求助于 StackOverflow

在 Django 视图中,什么被认为是更好的做法:在视图中间(例如,if-else 语句)或在少数末尾的 return 语句?为了进行比较,请考虑以下假设情况,其中响应类型需要根据一些任意条件进行更改:

def example(request):
  response = HttpResponse(content='500 Server error', status=500)
  if request.user.username == 'wolf':
    response = HttpResponse(content='No, bad wolf, no access', status=403)
  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

对比

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 教程似乎在两个变体之间跳转。

标签: pythondjangoview

解决方案


我建议你使用任何你认为最容易管理的东西。

就我个人而言,我更喜欢您的第二个示例,因为更清楚的是您将在此时返回并且不会执行进一步的代码/检查。


推荐阅读