2015-05-10 2 views
4

У меня есть вход: '123Joe's amazing login'Python струнные модели

Что я ищу, чтобы сделать с этим входом является напомнить пользователь, что регистрирующий на сайт, что ему нужно, чтобы сделать его имя пользователя URL дружественного

Так на стороне сервера. Я хотел бы иметь некоторое совпадение строк или сравнение, чтобы убедиться, что он действительно дружелюбный к URL, и если все в порядке, мы золотые, если нет, я бы хотел его urlfy и отправить обратно пользователю, который говорит что-то вроде: Эй, это имя: 123joes-amazing-login лучше »

Я не слишком уверен, с чего начать искать, какие-либо предложения?

редактировать:

другого ИО может быть: «это является удивительным», чтобы «this_is_awesome» и т.д ... просто нужно убедиться, что это URL дружественным!

редактировать 2: я завелся с помощью этого:

username = str(request.form['username']) 
username = urllib.quote(username, '') 
if '%' in username: 

Это касается сферы применения обработки пользователей т.е. все еще подчеркиваний и тира.

Спасибо за помощь.

+2

Почему бы не просто убрать имя пользователя, когда оно является частью URL-адреса, и оставить его как есть, когда оно отображается на странице? Например, https://stackoverflow.com/users/22656/jon-skeet – Blender

+0

Я, конечно, мог бы подойти к нему таким образом. Это может быть значительная часть отступления от того, что у меня есть. Я думал, что делать это тоже хорошо, но нужно будет найти эффективный способ реализовать его. –

ответ

3

Первый pip install python-slugify, затем

>>> import slugify 
>>> username = "123Joe's amazing login" 
>>> slugify.slugify(username) 
'123joes-amazing-login' 

Вы можете проверить, если данное имя пользователя равно затушеванная версия, а затем выполните свою логику предупреждения, если они неравны.

Теперь я хочу предложить вам, что это спорный выбор дизайна. Нет никакой веской причины, почему имена пользователей не должны содержать пробелы и кавычки. Если вам нужно перевести их на уникальные URL-адреса, лучше решить эту проблему, создав идентификатор пользователя, а также имя пользователя. Это можно сделать так, чтобы, кстати, это была пугающая версия имени пользователя (хотя вы должны быть осторожны с уникальностью).

+0

А это замечательно! Я проверю это, поиграю с ним и отчитаю! Кроме того, я должен признать, что я хочу, чтобы пользователи использовали символы подчеркивания. Я разрешаю пользователям иметь «хорошие имена», я рассматриваю их, чтобы позволить им иметь это как логин. –

Смежные вопросы