That username is already taken please choose another
That username is already taken please choose another
Эй, кто-нибудь может сказать мне, что я делаю неправильно в моем коде? Я хочу проверить, есть ли имя пользователя в базе данных или нет.
Весь маршрут. Это не даст мне никаких ошибок, но также не заполнит мою базу данных.
3 ответа
Во-первых, я думаю, что у меня есть пример рабочего кода для исходной задачи. Тем не менее, я думаю, что вы можете решить эту проблему с дублированием пользователей лучше, используя ограничения в базе данных. Смотрите в нижней части моего ответа.
Сначала давайте проверим текущий код. Есть несколько проблем, которые я вижу здесь:
В текущем коде блок try/finally в строке 6 должен быть смещен еще на один, чтобы можно было использовать соединение, установленное соединением, установленным в операторе with в строке 4.
Поскольку код в настоящее время не работает, соединение будет закрыто к тому времени, когда оно используется, поэтому весь доступ к базе данных не удастся.
Вот что я получил из оболочки Python, чтобы показать, что я имею в виду:
Вместо этого, чтобы проверить, возвращает ли оператор select значение, используйте fetchone и посмотрите, возвращает ли он None :
Я думаю, что-то вроде этого может работать:
Альтернативный подход
Более надежный подход позволил бы базе данных взять на себя ответственность за предотвращение дублирования пользователей.
Сделайте name столбец unique при создании таблицы. Затем вставка записи с тем же именем пользователя вызовет исключение. Возьмем пример из sqlite3 документов. :
Сделайте одну функцию, которая проверяет имя пользователя и адрес электронной почты уже в базе данных или нет.
DATAENGINER
Зачастую системный администратор должен быстро реагировать, на какие то проблемы с ресурсами, которые он администрирует. Поэтому многие администраторы создают чат боты, куда и будут поступать оповещения. А так как на сегодняшний момент один из популярных мессенджеров считается телеграмм, то мы создадим чат бота для нашей системы оповещения в телеграмм.
Регистрируем своего бота Telegram в BotFather
Для того чтобы зарегистрировать своего бота в Telegram нам необходимо в поисковой строке мессенджера Telegram вбить название бота, для регистрации ботов, да тавтология, но куда деваться.
Бот называется BotFather и так как это ник нейм, то мы указываем перед именем бота @ и получаем «@BotFather».
Далее в диалоге с ботом нажмем кнопку запустить.
В ответ бот нам выведет список команд, для работы с ним:
Представленные команды и описания к ним будут выведены на английском языке. Мы пришли создать нового бота, поэтому нас интересует команды «/newbot». В ответ на данную команду BotFather спросит нас о имени нашего бота Telegram.
Укажем любое произвольное имя. Я дал имя TestBot. Теперь нам предстоит придумать уникальный идентификатор, если мы не придумаем уникальный идентификатор мы не сможем продолжить регистрацию Telegram бота. Так же идентификатор Telegram бота должен содержать обязательное окончание «bot», например Bot или bot.
Если ваш идентификатор не уникален, то вы получите сообщение «Sorry, this username is already taken. Please try something different.»
Укажу уникальное exampledataenginer_bot.
После этого BotFather пришлет нам уникальный токен нашего бота и ссылку на документацию. Сохраним данный token для дальнейшей работы.
Переводы пользователей
Добавлены профессиональными переводчиками и компаниями и на основе веб-страниц и открытых баз переводов.
Английский
Русский
Информация
Английский
username is already taken, please choose another
Русский
Имя пользователя уже занято, пожалуйста, выберите другой
Последнее обновление: 2016-02-18
Частота использования: 4
Качество:
Источник: Анонимно
Английский
username is already taken
Русский
логин уже занят
Последнее обновление: 2022-04-30
Частота использования: 1
Качество:
Источник: Анонимно
Английский
the rule name is already assigned, please choose another name:
Русский
Правило с таким названием уже есть. Укажите другое название:
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
name already exists! please choose another name
Русский
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
name already in use. please choose another one.
Русский
Это имя уже занято. Выберите другое.
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
that name already exists, please choose another name.
Русский
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
nickname already in use. please choose another one
Русский
ÐÑо Ð¸Ð¼Ñ Ñже занÑÑо. ÐÑбеÑиÑе дÑÑгое
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please choose another key
Русский
Выберите другое имя для свойства
Последнее обновление: 2020-11-06
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please choose another name
Русский
Выберите другое имя
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please choose another nation
Русский
Выберите другую нацию
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
there is already a share with the name %1. please choose another name.
Русский
Общий ресурс с именем% 1 уже существует. Выберите другое имя.
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
the device «%1» already exists. please choose another name.
Русский
Устройство «% 1» уже существует. Укажите другое имя!
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Предупреждение: Содержит скрытое HTML-форматирование
Английский
another tag with the same name already exists. please choose another name.
Русский
Метка с таким именем уже существует Введите другое имя
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
empty name. please choose another one.
Русский
Пустое имя. Выберите другое.
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
the seat is already taken,’
Русский
Место уже занято».
Последнее обновление: 2018-02-21
Частота использования: 1
Качество:
Источник: Анонимно
Предупреждение: Содержит скрытое HTML-форматирование
Английский
another album with the same name already exists. please choose another name.
Русский
Альбом с таким названием уже существует Введите другое название
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
this file does not exist, please choose another.
Русский
Этот файл не существует. Выберите существующий файл.
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
failed to register new account: the requested username is already taken.
Русский
Не удалось создать учётную запись: выбранное имя пользователя уже используется.
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
thanks for the translation. but please choose another flag!
Русский
Спасибо за перевод. Но, пожалуйста, выбери другой флаг!
Последнее обновление: 2014-02-01
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please choose another payment method should your payment fail again
Русский
Пожалуйста, выберите другой способ оплаты, если снова не удастся осуществить платеж
Последнее обновление: 2020-11-06
Частота использования: 1
Качество:
Источник: Анонимно
Получите качественный перевод благодаря усилиям
4,401,923,520 пользователей
Сейчас пользователи ищут:
MyMemory — крупнейшая в мире память переводов. Она была создана на основе систем памяти переводов Европейского Союза, Организации Объединенных Наций и ведущих специализированных многоязычных сайтов из разных отраслей.
Мы относимся к Translated, так что, если вам нужны услуги профессионального перевода, посетите наш основной сайт.
Results for username is already taken, please. translation from English to Russian
Human contributions
From professional translators, enterprises, web pages and freely available translation repositories.
English
Russian
English
username is already taken, please choose another
Russian
Имя пользователя уже занято, пожалуйста, выберите другой
Last Update: 2016-02-18
Usage Frequency: 4
Quality:
Reference: Anonymous
English
username is already taken
Russian
логин уже занят
Last Update: 2022-04-30
Usage Frequency: 1
Quality:
Reference: Anonymous
English
the rule name is already assigned, please choose another name:
Russian
Правило с таким названием уже есть. Укажите другое название:
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
name already exists! please choose another name
Russian
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
name already in use. please choose another one.
Russian
Это имя уже занято. Выберите другое.
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
that name already exists, please choose another name.
Russian
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
nickname already in use. please choose another one
Russian
ÐÑо Ð¸Ð¼Ñ Ñже занÑÑо. ÐÑбеÑиÑе дÑÑгое
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
please choose another key
Russian
Выберите другое имя для свойства
Last Update: 2020-11-06
Usage Frequency: 1
Quality:
Reference: Anonymous
English
please choose another name
Russian
Выберите другое имя
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
please choose another nation
Russian
Выберите другую нацию
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
there is already a share with the name %1. please choose another name.
Russian
Общий ресурс с именем% 1 уже существует. Выберите другое имя.
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
the device «%1» already exists. please choose another name.
Russian
Устройство «% 1» уже существует. Укажите другое имя!
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
Warning: Contains invisible HTML formatting
English
another tag with the same name already exists. please choose another name.
Russian
Метка с таким именем уже существует Введите другое имя
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
empty name. please choose another one.
Russian
Пустое имя. Выберите другое.
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
the seat is already taken,’
Russian
Место уже занято».
Last Update: 2018-02-21
Usage Frequency: 1
Quality:
Reference: Anonymous
Warning: Contains invisible HTML formatting
English
another album with the same name already exists. please choose another name.
Russian
Альбом с таким названием уже существует Введите другое название
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
this file does not exist, please choose another.
Russian
Этот файл не существует. Выберите существующий файл.
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
failed to register new account: the requested username is already taken.
Russian
Не удалось создать учётную запись: выбранное имя пользователя уже используется.
Last Update: 2011-10-23
Usage Frequency: 1
Quality:
Reference: Anonymous
English
thanks for the translation. but please choose another flag!
Russian
Спасибо за перевод. Но, пожалуйста, выбери другой флаг!
Last Update: 2014-02-01
Usage Frequency: 1
Quality:
Reference: Anonymous
English
please choose another payment method should your payment fail again
Russian
Пожалуйста, выберите другой способ оплаты, если снова не удастся осуществить платеж
Last Update: 2020-11-06
Usage Frequency: 1
Quality:
Reference: Anonymous
Get a better translation with
4,401,923,520 human contributions
Users are now asking for help:
MyMemory is the world’s largest Translation Memory. It has been created collecting TMs from the European Union and United Nations, and aligning the best domain-specific multilingual websites.
We’re part of Translated, so if you ever need professional translation services, then go checkout our main site
Hey can anyone tell me what I’m doing wrong in my code? I want to check whether an username is already in the database or not.
Whole Route. It wont give me any errors but also wont fill my database.
3 Answers 3
Trending sort
Trending sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.
It falls back to sorting by highest score if no posts are trending.
Switch to Trending sort
First, I think I have a working code sample for the original problem. However, I think you can solve this duplicate user problem better using constraints within the database. See the bottom of my answer.
First let’s check the current code. There are a couple of issues I can see here:
In the current code, the try/finally block at line 6 needs to be indented one further in order to be able to use the connection established by the connection made in the with statement on line 4.
As the code currently stands, the connection will have been closed by the time it’s used, so all database access will fail.
Checking for a user
Here’s what I get from a python shell to show what I mean:
Instead, to check whether a select statement returns a value, use fetchone and see if it returns None :
I think therefore something like this might work:
Alternative approach
A more robust approach would be to let the database take responsibility for preventing duplicate users.
Make the name column unique when creating the table. Then inserting a record with the same username will throw an exception. Taking an example from the sqlite3 docs:
Источники информации:
- http://dataenginer.ru/?p=8359
- http://mymemory.translated.net/ru/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9/username-is-already-taken,-please-choose-another
- http://mymemory.translated.net/en/English/Russian/username-is-already-taken,-please-choose-another
- http://stackoverflow.com/questions/40205518/flask-sqlite-python-checking-if-username-is-already-in-database