python - 视图中的返回语句应该结束还是中间?
问题描述
我试图在这方面找到某种一致的规则,但找不到,所以我求助于 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 教程似乎在两个变体之间跳转。
解决方案
我建议你使用任何你认为最容易管理的东西。
就我个人而言,我更喜欢您的第二个示例,因为更清楚的是您将在此时返回并且不会执行进一步的代码/检查。
推荐阅读
- python - 如何通过另一个python文件运行一个python文件然后关闭第一个
- python - 字典值到数组,按键排序
- nginx - 在 Nginx 上通过 https 配置 tusd 的问题
- r - 根据列条件插入和填充两列
- spring - 在端点无效的情况下,Spring boot rest api 不会失败
- spring-security - 如何在 Spring WebFlux Security 中实现多种身份验证方法?
- jwt - 在数据库中存储刷新令牌是否安全?(为登录目的发布新的访问令牌)。或者有没有更简单的方法?
- python - 如何修复用法:setup.py [global_opts] cmd1 [cmd1_opts] 问题?
- spring - Spring OAuth2 谷歌登录+用户名和密码登录
- javascript - 在javascript中单击按钮时加载带有路径名的页面