Как реализовать модель для регистрации/авторизации пользователей? - Python
Формулировка задачи:
Всем привет.
Собственно, меня уже направили на верный путь, как лучше это делать, используя встроенный функционал Django.
Но у меня все же остался вопрос, почему мой код не работает. Немного истории: я пытался реализовать собственную модель для регистрации/авторизации пользователей.
Модель:
Вьюха (в переменную error я вывожу разный контент, для себя)
Проверка не проходит в условии:
Я выводил оба значения md5 они точно одинаковые + привожу их к строке
Вопрос: почему они все же не равны? Я в питоне новичок, может не понимаю каких-то особенностей языка?
Листинг программы
- from django.db import models
- class Users(models.Model):
- """
- This class is used for user manipulation
- """
- userName = models.CharField(max_length=50, unique=True)
- userMail = models.CharField(max_length=50, unique=True)
- userPass = models.CharField(max_length=32)
- userRole = models.CharField(max_length=12, default='user')
- def __unicode__(self):
- # return self.userPass
- return '%s, %s, %s, %s' % (self.userName, self.userMail, self.userPass, self.userRole)
Листинг программы
- def login(request):
- if request.method == 'POST':
- usermail = request.POST['usermail']
- password = request.POST['password']
- if usermail == '' or password == '':
- error = u'Все поля должны быть заполнены'
- return render(request, 'login.html', {'error': error})
- password2 = hashlib.md5(password).hexdigest()
- try:
- sql = "SELECT * FROM users_users WHERE userMail=usermail"
- user = str(Users.objects.raw(sql)[0])
- userInfo = user.split(',')
- if str(password2) == str(userInfo[2]):
- return render(request, 'login.html', {'error': userInfo}, context_instance=RequestContext(request))
- else:
- error = u'Введенные имя пользователя или пароль неверны'
- return render(request, 'login.html', {'error': userInfo[2], 'error2': password2}, context_instance=RequestContext(request))
- except:
- error = u'Пользователя с адресом %s не существует' %usermail
- return render(request, 'login.html', {'error': error}, context_instance=RequestContext(request))
- return render(request, 'login.html', context_instance=RequestContext(request))
Листинг программы
- if str(password2) == str(userInfo[2]):
Решение задачи: «Как реализовать модель для регистрации/авторизации пользователей?»
textual
Листинг программы
- ======
- constantine@alpha ~ $ echo -n "pass" | md5sum
- 1a1dc91c907325c69271ddf0c944bc72 -
- constantine@alpha ~ $ mdcrack 1a1dc91c907325c69271ddf0c944bc72
- <<System>> MDcrack v1.2 is starting.
- <<System>> Using default charset : abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
- <<System>> Max pass size = 12 >> Entering MD5 Core 1.
- Password size: 1
- Password size: 2
- Password size: 3
- Password size: 4
- ----------------------------------------
- Collision found ! => pass
- Collision(s) tested : 4601346 in 0 second(s), 245 millisec, 368 microsec.
- Average of 18752836.0 hashes/sec.
- ===
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д