UnboundLocalError в django при передаче sql-запроса
Вот мое сообщение об ошибке:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/mainpage.html
Django Version: 3.2.12
Python Version: 3.7.4
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'website']
Installed Middleware:
('whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware')
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\user\desktop\dentist\website\views.py", line 40, in mainpage
c.execute(query)
Exception Type: UnboundLocalError at /mainpage.html
Exception Value: local variable 'query' referenced before assignment
Это мой python views.py
Вот код HTML (mainpage.html):
В настоящее время я пытаюсь сделать так, чтобы страница входа в систему идентифицировала пользователя, который входит в систему, после чего отображала его информацию в виде таблицы, используя запрос, который я буду выполнять в SQL. Я не уверен, почему возникает ошибка.
Я попытался добавить комментарии к вашему коду.
def mainpage(request):
if 'your-email' not in request.session:
if request.method == "POST":
email = request.POST['your-email']
password = request.POST['your-password']
if email!='' and password!='':
verification = "SELECT * FROM users WHERE email = '" + email + "' AND password = '" + password + "';"
c = connection.cursor()
c.execute(verification)
account_exist = c.fetchall()
results_dict = {}
if not account_exist:
results_dict = {'error':'Please try again. Entered username or password is wrong'}
return render(request, 'login.html',results_dict)
request.session['your-email'] = email
# You would need to set your query here so it can be used below
query = "SELECT email, display_name, age, phone_number, vaccination_status, rating, count_rate FROM users WHERE email = '" + request.session['your-email'] + "';"
else:
# If email=='' and password=='' you need to render your login template
return render(request, 'login.html')
else:
# If request.method == "GET" you need to render your login template
return render(request, 'login.html')
else:
query = "SELECT email, display_name, age, phone_number, vaccination_status, rating, count_rate FROM users WHERE email = '" + request.session['your-email'] + "';"
c = connection.cursor()
c.execute(query) # this is line 40 the error message
results = c.fetchall()
result_dict = {'records': results}
return render(request, 'mainpage.html', result_dict)