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

Резултати

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

Пребарај: #concept

当前筛选 #concept清除筛选
Car News

@car_news · Post #1269 · 15.05.2025 г., 12:04

🛸This is futuristic: the Hyperion XP-1 hydrogen car with the sound of a spaceship and steam instead of exhaust 🐎 The engine has 2038 hp and acceleration to 100km/h is 2.2 sec. 🔋 One tank of hydrogen helps to overcome in the region of 1600 km. 💰 They are preparing 300 copies, each of which will cost $2 million. #concept@Car_News

Hashtags

Ares Channel

@ArashRx · Post #417 · 19.01.2024 г., 19:10

🅰Request For Approval Telegram in version 10.6.1 added the ability to restrict incoming messages for Non-Premium subscribers, which creates many restrictions for chats. Read more details in the next post. 🌚Concept designed by @Rxdvl (Still me) -#concept 🅰@ArashRx

Hashtags

Ares Channel

@ArashRx · Post #359 · 13.11.2023 г., 13:49

🅰Emoji Switcher, Hold on an emoji to choose custom emojis Yeah, again a concept, even though it shouldn't be. But this time was @Linus's idea; One of his creative ideas. Designed by me🌚 - #concept 🅰@ArashRx

Hashtags

Ares Channel

@ArashRx · Post #292 · 06.08.2023 г., 20:57

🅰Telegram Drive Concept📥 Telegram Drive is an unlimited storage based on cloud space which, in addition to Saved Messages, has features such as editing images before sending and sending them as albums. Write your opinion about this concept in the comments 🌚Designed by me - #concept 🅰️@ArashRx

Hashtags

Ares Channel

@ArashRx · Post #243 · 19.05.2023 г., 09:13

🅰Telegram Moments Concept🔥 Write your opinion about this feature in the comments 🌚Designed by me - #concept 🅰@ArashRx

Hashtags

Ares Channel

@ArashRx · Post #191 · 05.01.2023 г., 16:42

My first concept for Telegram: 🅰Hashtag Notifications Concept🚀 ※ Select the hashtags you want to join be notified about and get notified when those hashtags are posted in a channel🔥 This is only a concept designed by me and it was sent as a suggestion for Telegram and I hope that this concept will be supported so that we can see this feature in Telegram soon. Write your comments about this concept below this post👇 - #concept ⭕️@ArashRx

Hashtags

DWF Labs Broadcast

@Dwflabs · Post #136 · 09.01.2023 г., 00:21

In our latest episode of DWF Chats, we hosted Ty Blackard, Co-founder and Head of Business Development of NFTY Finance 🙌 Hear more about NFTY Finance, how #defi is changing the #concept of credit score and what's coming up for them in 2023 ✨ Full interview here. Click here to find out more. Get connected 💬 Twitter | Linkedin | Website | Discord

Car News

@car_news · Post #1204 · 17.04.2025 г., 14:32

🎮 Sony has revealed Afeela electric car, which can be driven with the PS5 joystick ℹ️ The Afeela concept was originally stated to have 400kW (536hp) dual-motor all-wheel-drive, 0-100km/h in 4.8 seconds, and a top speed of 240km/h. 💰 Still no information on price or battery size, but there are two more years until this car hits the road, so price will surely come later. @CarsNews #concept#EV

Hashtags

Kpop Premium 《🌿》

@bubbletealuv · Post #3382 · 09.10.2025 г., 21:05

ᝬ 🫐🫐🫐🫐🫐𖠵 ゛ (( 🤩) new post by bubbletealuv ↝ #concept ➛ #TXT.. ✨ …( emoji ) 💭 взяли? буду рад увидеть плюсы и реакции.

Hashtags

123•••78
ПретходнаСтраница 1 од 8Следна