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

Резултати

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

Пребарај: #penguins

当前筛选 #penguins清除筛选
TONlines – News

@tonlines · Post #7149 · 09.05.2025 г., 17:12

⚡️TON Community: Pudgy Penguins Launches Pengu Clash #TON#Penguins#Elympics TON Community announces the launch of Pengu Clash by Pudgy Penguins on TON. This real-time multiplayer game offers customizable Penguin teams and competitive arenas, with pre-registration opening on May 9. The game will kick off once the waitlist reaches 1 million participants. Source: link @tonlines

Google Facts™ [ ️@googlefactss🌎]

@googlefactss · Post #40974 · 25.04.2026 г., 14:01

Penguins have several group names. A group in water is called a “raft.” On land, it is called a “waddle.” A large group of penguins living or breeding together is called a “colony.” The place where they gather to breed is also called a “rookery.” 🐧🌊🏝️🐣 [Read more] @googlefactss #Penguins#AnimalFacts#Wildlife#DidYouKnow

🖼Boulders Beach — Penguins on the Beach! 🌊 The beautiful Boulders Beach is one of Cape Town’s most visited and the only place in the world where you can get this close to African penguins. 🐧 The Boulders Penguin Colony in Simons Town is home to a unique and endangered land-based colony of African Penguins — one of only a few in the world. This site has become a famous international tourist destination. The Boulders section of Table Mountain National Park consists of three pristine beaches, one penguin-viewing area, and three wooden boardwalks — built to let visitors admire these wonderful birds while keeping them safe. Thanks to the huge boulders that shelter the cove from currents, wind, and waves, it’s one of the best spots in Cape Town for both penguins and people. 🌴 🎥 Watch the video: https://www.youtube.com/watch?v=yDiVyXEbiNE #SouthAfrica#CapeTown#Tourism#Leisure#Nature#Travel#Penguins

Где живут пингвины?🐧🌍 Студент из ЮАР Ассуа Ака в коротком видео (0:40) на отличном русском языке расскажет вам об этом. #Природа#Пингвины#Кейптаун ___________________ Where do penguins live? 🐧🌍 A student from South Africa, Assua Aka, will tell you about it in good Russian in a short (0:40) video. #Nature#Penguins#CapeTown 📹https://t.me/tvbrics/8262

VIP_影视分享

@wangzhuanzhan · Post #33226 · 20.09.2024 г., 06:59

M-m马m达d加j斯s加j的d企q鹅e- 马达加斯加的企鹅 Penguins of Madagascar (2014) 直达链接:https://pan.quark.cn/s/382656d846e8 #马达加斯加的企鹅#Penguins of Madagascar #马达加斯加爆走企鹅#荒失失企鹅 链接:https://link3.cc/sf_com #电影#喜剧#美国#10年代