Голосование за лучший ответ
Gerdot Lareston
Мудрец
(10768)
3 месяца назад
Ошибка "TypeError: 'type' object does not support item assignment" возникает потому, что вы пытаетесь присвоить значение элементу встроенного типа данных `dict`, который является классом, а не созданным вами словарем.
В вашем коде `dict` является встроенным типом данных, поэтому его нельзя использовать как переменную для хранения словаря.
Чтобы исправить это, вам нужно создать словарь и использовать его вместо `dict`. Вот исправленный код:
```python
account = {'guest': '123456'}
def registration():
log = request.form.get('login')
passw = request.form.get('password')
passw2 = request.form.get("passwordtu")
if passw == passw2:
print(log, passw)
account[log] = int(passw)
return render_template('logend.html')
else:
return render_template('registr.html')
```
Теперь `account` это ваш словарь, в который вы добавляете новую запись при регистрации нового пользователя.
3681
Просветленный
(20338)
3 месяца назад
Ошибка возникает потому что ты пытаешься использовать имя встроенного типа данных dict как переменную для своего словаря.
Используй переменную accaunt: вместо того, чтобы пытаться изменить dict, используй существующую переменную accaunt для хранения данных аккаунтов.
Нет необходимости в int(passw): пароли обычно хранятся как строки, поэтому нет необходимости преобразовывать passw в целое число.
Так же кстати хранить пароли в открытом виде — очень плохая практика. Вместо этого используй хеширование, например, с помощью библиотеки bcrypt.
И перед добавлением нового пользователя в словарь accaunt, проверь, не существует ли уже пользователя с таким логином.
TypeError: 'type' object does not support item assignment
что делать?