Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 21, 2018 04:28:54

KOMn
Зарегистрирован: 2018-06-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

Доброго времени суток! Подскажите пожалуйста! Учу код и решил написать регистрацию но столкнулся с такой проблемой что когда регистрируешь пользователя с русским логином то Николай и николай при разном регистре будут разными пользователями вот код проверки.
c.execute(“SELECT name FROM user WHERE UPPER(name) LIKE :name”, {“name”:name})
conn.commit()
r = c.fetchone()
elif r != None:
print('Логин существует!')
reg()
Если с латинскими буквами работать то всё норм. Как запретить ввод кириллицы или убрать привязку к регистру? Я туп пока в программировании) Так что простите за возможно не правильно поставленный вопрос)

Офлайн

#2 Июнь 21, 2018 08:48:24

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

KOMn
Если с латинскими буквами работать то всё норм.
Ваш софт будет удобен и востребован если он ведет себя так как принято в сообществе.

А принято как раз обратное. Регистр важен. Я бы очень жестко обматерил разработчика который не так сделает. Более того, и программировать неудобно когда вы делаете “Против течения”

Если вы согласны поменять парадигму то просто убрать UPPER из запроса.

Если нет то править надо не то что вы привели. Upper надо делать в питоне перед записью в базу и перед формированием запроса.



Офлайн

#3 Июнь 21, 2018 09:02:30

KOMn
Зарегистрирован: 2018-06-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

Точнее да мне как раз и нужен регистр. Чтобы не давал в конечном итоге регистрировать пользователя с одинаковым именем когда применяется разный регистр.

Отредактировано KOMn (Июнь 21, 2018 09:03:23)

Офлайн

#4 Июнь 21, 2018 09:06:33

KOMn
Зарегистрирован: 2018-06-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

Тоесть я так понял Upper мне нужно добавить сюда?
c = conn.cursor()
c.execute(“INSERT INTO user (name, password) VALUES ('%s','%s')”%(username,userpassword))
conn.commit()
print('Вы успешно зарегестрировались!')

Отредактировано KOMn (Июнь 21, 2018 09:08:34)

Офлайн

#5 Июнь 21, 2018 09:23:16

KOMn
Зарегистрирован: 2018-06-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

Я так понял что можно UPPER вообще не использовать для проверки на наличие имени в базе. Но с кириллицей не работает. Как же всё-таки запретить ввод кириллицы в форму?

Офлайн

#6 Июнь 21, 2018 09:45:44

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

KOMn
Как же всё-таки запретить ввод кириллицы в форму
проверить на наличие кириллицы
в водимой строке
1 регуляркой выбрав кириллицу из строки и если есть результат то выдать ошибку
2 сравнив множество из строки с множеством из букв в кирил.
3 тупо сравнить побуквенно с списком букв в кирил.

Офлайн

#7 Июнь 21, 2018 10:41:18

KOMn
Зарегистрирован: 2018-06-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

А пример кода можно?
Я примерно представляю но не уверен

Отредактировано KOMn (Июнь 21, 2018 10:41:53)

Офлайн

#8 Июнь 21, 2018 12:43:30

KOMn
Зарегистрирован: 2018-06-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

Всё получилось Спасибо за подсказку
import re
pattern=re.sub(r'^+', ‘', name)
string=str(name)
result=re.findall(pattern, string)
if name in result:
print(’Логин не может содержать русские буквы!')
reg()
Вот ещё осталось символы добавить)

Отредактировано KOMn (Июнь 21, 2018 12:46:17)

Офлайн

#9 Июнь 21, 2018 21:08:38

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как запретить ввод кириллицы или убрать привязку к регистру.

KOMn кажеться вы подходите не стой стороны. А если там будет не кирилица а какиенить китайские иероглифы, греческий, арабский или спецсимволы? Вы бы лучше проверяли на вхождение на латиницу и разрешенные сиволы(цифры точка, нижнее подчеркивание, хз что еще), если там есть еще чтото то отлуп.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version