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

Резултати

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

Пребарај: #hello

当前筛选 #hello清除筛选
theVSЁ

@the_vse · Post #866 · 15.05.2025 г., 10:45

Шли же племена, Бедой России угрожая; Не вся ль Европа тут была? … И что ж? свой бедственный побег, Кичась, они забыли ныне; Забыли русский штык и снег, Погребший славу их в пустыне. Знакомый пир их манит вновь… … Ваш бурный шум и хриплый крик Смутили ль русского владыку? Скажите, кто главой поник? Кому венец: мечу иль крику? Сильна ли Русь? Война, и мор, И бунт, и внешних бурь напор Ее, беснуясь, потрясали… Привет Европа #Hello#Banksy TheVSЁ

无损音乐分享频道

@d_wusun · Post #6364 · 10.05.2026 г., 13:03

名称:阿杜 - 2003年专辑 - Hello - Flac 描述:阿杜(Ado),本名杜成义,1973年3月11日出生于新加坡,新加坡华人男歌手。 在当歌手之前,阿杜是建筑工地的工头,直到有一天,阿杜陪同朋友去参加一个三千多人报名的试音比赛,意外受到评审的肯定与青睐,立刻与他签约为培训的歌手,加入海蝶唱片,从此步入歌坛。 01.哈啰 02.下雨的时候会想你 03.走向前 04.退让 05.小说 06.无能为力 07.死心彻底 08.爱你比我重要 09.Hello 10.祝你快乐 链接:https://pan.quark.cn/s/50f8180b0ab8 📁 大小:267MB 🏷 标签:#阿杜#Hello#音乐#无损音乐#猪儿虫

KNAUF Uzbekistan

@knaufuzbekistan · Post #161 · 21.11.2020 г., 07:00

​​Assalomu alaykum, привет yoki hello, salomlashishning necha xil shakli bor? Ehtimol minglab ... 🤝Qo'l bilan sorashamiz yoki yelkasiga urib qoyamiz. ❗️Masofani saqlaysizmi?! 👌Unda uzoqdan samimiy ta'zim qilishingiz yoki qol silkitishingiz mumkin. 😊Xitoydagi kabi salomlashamiz – bunda siz qo'llaringizni zanjir ko’rinishiga keltirib, boshingiz yuqorisiga ko'tarishingiz ham mumkin.Siz hurmat bilan bir qolingizni koksingizga yoki arablarning odati kabi ikki qolingizni koksingizga qoyib ham sorashishingiz mumkin. Energiya va yaxshi kayfiyat olish uchun ajoyib kun. Siz qanday salomlashish usullarini bilasiz? Marhamat, izohlarda biz bilan ortoqlashing.👇 - - - - - Ассалому алайкум, привет или hello, сколько разных форм у приветствия? Наверное, тысячи… 🤝Обменяемся рукопожатием или похлопаем по плечу. ❗️Соблюдаете дистанцию?! 😊Тогда можно сделать поклон или дружелюбно помахать издалека. Можно сцепить руки и поднять их над головой, поздороваемся как в Китае.Уважительно прижать руки к груди или скрестить как принято у арабов. 👍Прекрасный день для того, чтобы получить заряд эмоций и хорошего настроения. А какие вы знаете приветствия? Поделитесь пожалуйста в комментариях.👇 #knaufuzbekistan#привет #hello#assalomualeykum

VIP_影视分享

@WangZhuanZhan · Post #33898 · 09.10.2024 г., 08:14

N-n你n好h- 你好,陌生人 กวน มึน โฮ (2010) 直达链接:https://pan.quark.cn/s/1a308c3af095 #你好,陌生人 #กวน มึน โฮ #只爱陌生人#冬日恋爱 #认识我,认识你 #两心知 #Hello Stranger #Knowing Me, Knowing You 链接:https://link3.cc/sf_com #电影#喜剧#泰国#10年代