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

Резултати

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

Пребарај: #park

当前筛选 #park清除筛选

Результаты 3ей попытки Первенства Локомотив! 4ю попытку необходимо выложить - до 29 мая 23:59 по московскому времени; Напоминаем вам условия первенства: в зачет идет лучшая попытка. Условия: - снять дорожку не более чем на 45 сек - снять 2 одиночных трюка - опубликовать видео на своей странице ВК - отметить дисциплину #park#street (можно участвовать в двух дисциплинах с разными роликами) - отметить @fedskaterussia - поставить тег #первенство_локомотив Скоро мы узнаем финалистов!

Добрый вечер! Мы подготовили результаты 2ой попытки Первенства Локомотив! 3ю попытку необходимо выложить - до 22 мая 23:59 по московскому времени; Кто забыл условия первенства, то напоминаем вам: в зачет идет лучшая попытка. Условия: - снять дорожку не более чем на 45 сек - снять 2 одиночных трюка - опубликовать видео на своей странице ВК - отметить дисциплину #park#street (можно участвовать в двух дисциплинах с разными роликами) - отметить @id145190006 (@fedskaterussia) - поставить тег #первенство_локомотив Результаты 1ой попытки - https://vk.com/wall-150050521_4947 Битва продолжается!

Ну что, друзья, готовы снова зарядить пауэрбэнки и вернуться в скейтпарки за своими лучшими дорожками? Объявляем онлайн-квалификацию на Первенство ОО «РФСО Локомотив»! Первенство проходит в дисциплинах «парк» и «улица» среди юношей и девушек до 16 лет включительно (это значит, что на момент самого контеста вам должно быть не более 16 лет). У вас будет 4 попытки, чтобы показать свой лучший результат! В каждой попытке от вас требуется: - снять дорожку не более чем на 45 сек - снять 2 одиночных трюка - опубликовать видео на своей странице ВК - отметить дисциплину #park#street (можно участвовать в двух дисциплинах с разными роликами) - отметить @fedskaterussia - поставить тег #первенство_локомотив Время для съемок и публикации своих видео: 1 попытка - до 8 мая 23:59 по московскому времени; 2 попытка - до 15 мая 23:59 по московскому времени; 3 попытка - до 22 мая 23:59 по московскому времени; 4 попытка - до 29 мая 23:59 по московскому времени.

Артем56

@artm55s · Post #810 · 01.04.2026 г., 08:45

Отличные новости! 🛴😎 У нас пополнение среди паркеров! Встречайте — Николаенко Данил из солнечного Краснодара! Данил крутой райдер, чей уникальный стиль и бесстрашие уже успели вдохновить многих. Мы рады объявить, что теперь Данил будет выступать при поддержке нашей команды и бренда! Добро пожаловать в команду! 📱dkravets15 #park#TechTeamProхуйня #НовыйРайдер

Luna Everly

@lunaeverly · Post #73 · 05.02.2026 г., 08:28

A mini picnic in the park. 🧺 Just being here and now is the best plan for the day. Мини-пикник в парке. 🧺 Просто быть здесь и сейчас — лучший план на день. #LunaEverly#Picnic#DayMindset#Park#Simplicity

Rui's Ramble

@RsRamble · Post #675 · 10.09.2024 г., 10:01

我,灯,自然公园 除了第一张,其它的都是靠闪光灯照亮整个场景 在拍摄过程中没有遇到猴子🐒 因外是来测试外拍场地的,所以只能拿自己当稻草人拍了 长得不好看肥肠抱歉😭😭 Telok Blangah Hill Park (2024-09-08) #nightphotography#naturalpark#park#flashphotography#singapore

A multidisciplinary team of XISUI Design has created a 3D concrete-printed playground in Shandong Province, China. Named Boulder Park, a 13,000-square-metre community park in Ji’nan, combines massive boulders - a natural material symbolizing eternity - as the core design element. These boulders complement the park’s experiential and practical offerings. Stones in the shallow creek can be incorporated into the water play installation, and boulders set over a sandpit can be used as climbing and resting play structures. Additionally, cutting-edge 3D-printed concrete technology is used to build a huge rock cave adventure area. Images 1-2-3-4-5 📸 Zhou Sheng. Image 6 📸 Hu Yihao. #design#playgrounddesign#park#urban#3dprinting#3dprintingconcrete#china

RISVEGLIO

@gianlucaprocaccinireport · Post #9801 · 19.08.2025 г., 12:01

📷 La foto è stata scattata nel Parco centrale intitolato a Maksim Gorkij a Lugansk. Strutture in legno gialle usate come librerie pubbliche. " Un viaggio nel lato nascosto del Donbass: quello che costruisce invece di distruggere ". #Donbass#lugask#europa#estate#ferragosto #Lugansk#europa#russia#italia#Books#lettura#parchi#park