TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django

Резултати

Пронајдени 41 слични објави

Пребарај: #serebro

当前筛选 #serebro清除筛选
СТОП! СЛИТО.💦

@stopslito · Post #12519 · 13.07.2024 г., 08:02

🎶 Продюсер Максим Фадеев анонсировал выпуск пластинки с неизданным материалом группы Serebro Релиз состоится 19 июля перед премьерой нового состава музыкального коллектива. Прекративший в 2019 году существование поп-проект Serebro перезапустят. #МаксимФадеев#Serebro СТОП! СЛИТО.💦

Украшения на все времена! Блеск и элегантность серебряных украшений завораживают, пробуждая в нас чувство стиля и индивидуальности. Серебро, обладая уникальной теплотой и мягкостью, становится идеальным материалом для создания неповторимых украшений. Каждое серебряное колье, браслет или серьги имеют свою историю - от древнегреческих изваяний до современных авторских работ. Это не просто металл, это воплощение творчества и высоких эмоций, переданных мастером от сердца к сердцу. Серебро отлично сочетается с различными камнями, от традиционного бирюзового до загадочного аметиста, позволяя каждому изделию заиграть новыми красками. Откройте для себя мир серебра, и Вы увидите, как он изменит Ваше представление о красоте и элегантности! Для заказа серебряных украшений: - Переходите по ссылке на наш сайт, указанный в шапке профиля. - Пишите нам в сообщения группы. - Посетите наш ювелирный салон по адресу г. Ярославль, ул. Малая Октябрьская д.6 #серебряныеукрашения #осень #серебро #serebro #мода

Приготовьтесь к восхищенным взглядам! Ювелирные украшения – это ключ к элегантности и оригинальности каждой представительницы прекрасного пола. С их помощью Вы не только украсите любой наряд, будь то скромное платье или праздничный костюм, но и подчеркнете свою индивидуальность! Для заказа: - Перейдите по ссылке на наш сайт, указанный в шапке профиля. - Напишите нам в сообщения группы. - Посетите наш ювелирный салон по адресу г. Ярославль, ул. Малая Октябрьская д.6 #серебряныеукрашения #серебро #serebro #мода#ювелирныеиздели #silver #русскиеремесла

Не ждите особого случая, чтобы сиять! Позвольте себе разнообразить каждый день с нашими ювелирными украшениями. Загляните на наш сайт www.rusremesla.ru прямо сейчас! #украшения #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла #серебрянаяпосуда

Мы так хотим, чтобы лето не кончалось! Лето - время самых ярких и легких нарядов! Летний стиль требует особого внимания к деталям и здесь на помощь приходят серебряные украшения. Серебро прекрасно сочетается с летней палитрой. Нежные серебряные серьги с жемчугом или классический браслет с филигранным узором могут стать ярким акцентом в вашем летнем образе. А как насчет кулонов с природными мотивами? Листочки, цветы или морские ракушки, выполненные из серебра, сделают ваш летний look незабываемым. Они несут в себе атмосферу солнечных дней и запоминаются надолго. Давайте подольше хранить в памяти летние мгновения, украшенные блеском серебра! Выбирайте украшения на нашем сайте http://rusremesla.ru/ и продлевайте лето вместе с нами! #серебряныеукрашения #лето #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла

Лето - время радости, цветов и украшений! Летние теплые деньки – самое время, чтобы добавить немного блеска и красок в свой образ. Серебряные браслеты, яркие серьги, легкие колье – все это прекрасно дополнит ваш летний наряд. Не стесняйтесь экспериментировать - выражайте свою индивидуальность через украшения! Вопрос для вас: какие украшения предпочитаете носить летом? Присылайте фото любимых летних украшений в комментарии – мы будем рады! На нашем сайте http://rusremesla.ru Вы точно найдете, чем себя порадовать! #серебряныеукрашения #лето #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла

Блеск, который освежает. Серебро обладает удивительным свойством – его прохладный блеск словно создает эффект свежести. В жаркие дни серебряные украшения смотрятся особенно эффектно, отражая солнечные лучи и добавляя образу лёгкости. #серебряныеукрашения #лето #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла

Как всегда грандиозно прошли премьеры хитов от HIFI-стриминга Звук - «Вечерний звук», где искромётно выступили Митя Фомин, Полина Гагарина, Vlada Miravi, BEARWOLF, NLO, By Индия, новый состав группы SEREBRO, исполнитель хита Sigma Boy - Betsy, Марсель и другие. #сберзвук#вечернийзвук#МитяФомин#ПолинаГагарина#Betsy#SEREBRO#BEARWOLF#NLO#Miravi

Не откладывайте на потом! Прямо сейчас вооружитесь красотой и стильно выделяйтесь из толпы благодаря нашим серебряным украшениям, которые подойдут к любому наряду. Добавьте нотку изысканности в свою жизнь и позвольте своим аксессуарам говорить о Вас! Переходите на наш сайт, указанный в шапке профиля! #серебряныеукрашения #осень #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла #ярославль

Зачем нам сувениры? Это вопрос, который задают себе многие. Для кого-то сувенир – это просто память о поездке или о событии, которое они хотят сохранить в своей памяти. Для кого-то это способ выразить свою индивидуальность. В любом случае сувениры – это не просто предметы интерьера, это в первую очередь эмоции и воспоминания, пропитанные различными чувствами! Сувенирную продукцию вы можете найти на нашем сайте www.rusremesla.ru #серебряныеукрашения #лето #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла#сувениры

Вместо тысячи слов… Классическое серебряное кольцо — это не просто украшение, это символ нежности и внимания. Этот подарок способен покорить сердце любой девушки. Серебро - металл, который олицетворяет чистоту и нежность чувств, а кольцо на пальце девушки напоминает ей о заботе и любви, которую она получает. Кроме того, серебряное кольцо отлично сочетается с любым нарядом - будь то повседневная одежда или вечернее платье - оно подчеркивает женственность и изящество обладательницы. Если хотите порадовать свою возлюбленную или просто хотите сделать приятный сюрприз девушке - обратите внимание на классическое серебряное кольцо. Мы уверены, она будет в восторге от такого внимательного и трогательного подарка. Для заказа: - Переходите на наш сайт www.rusremesla.ru. - Пишите нам в сообщения группы. - Посетите наш ювелирный салон по адресу г. Ярославль, ул. Малая Октябрьская д.6 #серебряныеукрашения #лето #серебро #serebro #мода#ювелирныеизделия #silver #серебряныесерьги #кольцо #русскиеремесла #подарок

Поздравляем с Государственным праздником России - Днем народного единства! Сегодня мы вспоминаем события, сыгравшие ключевую роль в истории нашей страны. Четыре с небольшим столетия назад этот день ознаменовал начало возрождения России - благодаря сплочению и единению народа, поднявшегося на защиту Отечества, был положен конец одному из самых тяжелых периодов – Смутному времени. Единение народа во все времена было основополагающим для России. Это та основа, которая связывает наше прошлое, настоящее и будущее. И сегодня согласие и единство общества, основанные на нравственных ценностях, испытанных веками, являются необходимым условием для благополучия России, спокойной и мирной жизни ее граждан. Давайте хранить мир, согласие и взаимопонимание в нашем обществе. Вместе мы можем преодолеть любые преграды! С праздником, желаем Вам мира, благополучия и всего самого доброго. #серебрянаяпосуда #осень #серебро #serebro #мода #silver #серебряныесерьги #4ноября #русскиеремесла #деньнародногоединства

ПретходнаСтраница 1 од 4Следна