2个相同代码之间的区别
Difference between 2 identical codes
我正在尝试对 HTTP 响应进行故障排除,一个代码工作正常,但另一个代码返回 ValueError 它们是相同的代码,我并排查看了 1 小时,但我做不到找出错误代码有什么问题这真的很烦我。
工作代码:`
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth
def signup(request):
if request.method == 'POST':
if request.POST['password1'] == request.POST['password2']:
try:
user = User.object.get(username=request.POST['username'])
return render(request, 'accounts/signup.html', {'error':'Username in use'})
except User.DoesNotExist:
User.objects.create_user(request.POST['username'], password=request.POST['password1'])
auth.login(request.user)
return redirect('home')
else:
return render(request, 'accounts/signup.html')
def login(request):
return render(request, 'accounts/login.html')
def logout(request):
return render(request, 'accounts/signup.html')
错误代码:
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth
def signup(request):
if request.method =='POST':
if request.POST['password1'] == request.POST['password2']:
try:
user = User.object.get(username=request.POST['username'])
return render(request, 'accounts/signup.html', {'error':'Username in use '})
except User.DoesNotExist:
User.objects.create_user(request.POST['username'], password=request.POST['password1'])
auth.login(request.user)
return redirect('home')
else:
return render(request, 'accounts/signup.html')
def login(request):
return render(request, 'accounts/login.html')
def logout(request):
return render(request, 'accounts/signup.html')
`
else:
return render(request, 'accounts/signup.html')
因此,如果这段代码不是 post,而是第一段代码中的 GET 请求,它将 return 网页 signup.html。但是在第二个中,else 语句甚至不在 if 之下。
我正在尝试对 HTTP 响应进行故障排除,一个代码工作正常,但另一个代码返回 ValueError 它们是相同的代码,我并排查看了 1 小时,但我做不到找出错误代码有什么问题这真的很烦我。
工作代码:`
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth
def signup(request):
if request.method == 'POST':
if request.POST['password1'] == request.POST['password2']:
try:
user = User.object.get(username=request.POST['username'])
return render(request, 'accounts/signup.html', {'error':'Username in use'})
except User.DoesNotExist:
User.objects.create_user(request.POST['username'], password=request.POST['password1'])
auth.login(request.user)
return redirect('home')
else:
return render(request, 'accounts/signup.html')
def login(request):
return render(request, 'accounts/login.html')
def logout(request):
return render(request, 'accounts/signup.html')
错误代码:
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth
def signup(request):
if request.method =='POST':
if request.POST['password1'] == request.POST['password2']:
try:
user = User.object.get(username=request.POST['username'])
return render(request, 'accounts/signup.html', {'error':'Username in use '})
except User.DoesNotExist:
User.objects.create_user(request.POST['username'], password=request.POST['password1'])
auth.login(request.user)
return redirect('home')
else:
return render(request, 'accounts/signup.html')
def login(request):
return render(request, 'accounts/login.html')
def logout(request):
return render(request, 'accounts/signup.html')
`
else:
return render(request, 'accounts/signup.html')
因此,如果这段代码不是 post,而是第一段代码中的 GET 请求,它将 return 网页 signup.html。但是在第二个中,else 语句甚至不在 if 之下。