我试图将try except
块作为DRY的一部分从函数中获取。如果我直接将其放入函数中,就可以使用
@api_view(["GET", "POST"])
def user_info(request):
if request.method == "GET":
username = request.GET.get("username")
password = request.GET.get("password")
try:
Account.objects.get(username=username, password=password)
except Account.DoesNotExist:
return JsonResponse({
"success": "false",
"error_code": "1",
})
但是,如果我将其设置为功能user_check
,它将无法正常工作
@api_view(["GET", "POST"])
def user_info(request):
if request.method == "GET":
username = request.GET.get("username")
password = request.GET.get("password")
user_check(username,password)
def user_check(username,password):
try:
Account.objects.get(username=username, password=password)
except Account.DoesNotExist:
return JsonResponse({
"success": "false",
"error_code": "1",
})
答案 0 :(得分:1)
也从try块返回。喜欢:
def user_check(username,password):
try:
Account.objects.get(username=username, password=password)
# Add this line
return True
except Account.DoesNotExist:
return JsonResponse({
"success": "false",
"error_code": "1",
})
而且,您的功能可能是:
@api_view(["GET", "POST"])
def user_info(request):
if request.method == "GET":
username = request.GET.get("username")
password = request.GET.get("password")
data = user_check(username, password)
if data==True:
# executed from try block known