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

Резултати

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

Пребарај: #russiancourses

当前筛选 #russiancourses清除筛选
Russian Consulate in Cape Town

@rusconct · Post #2836 · 16.07.2025 г., 12:28

Free Russian Language Courses in Cape Town! We are pleased to invite everyone to take part in free Russian language courses supported by the Ministry of Education of the Russian Federation and St. Petersburg State University. 👩‍🏫 The lessons will be conducted by Dasha and Taisiya — experienced teachers of Russian as a foreign language with nearly 20 years of teaching experience. 📚 The courses are open to everyone. No prior knowledge of Russian is required. Why learn Russian? 🗣 It is a language spoken across 15 countries and serves as a bridge among more than 160 ethnic groups. 🌍 Studying Russian offers access to a rich cultural, literary, and scientific heritage — from Tolstoy and Dostoevsky to Gagarin and Tchaikovsky. 📖 Course highlights: – Basics of grammar and practical conversation – Introduction to Russian culture and traditions 🔗 Register here: https://forms.gle/p4fo6ttm8esXqtLa6 Let’s explore the Russian language together! #RussiaSouthAfrica#RussianCourses#LearnRussian

Russian House Brussels-Europe

@rushousebrussels · Post #2471 · 23.06.2025 г., 07:33

📚Enrollment is open for the 2025–26 academic year! ⏰24 June | 18:00 Join our Presentation of Russian Language Courses for Adults — meet the teachers and find the perfect program for you: ✨Fundamental Course — from A1 to C1, steady pace (October–June) ⚡️Intensive Course — fast-track A1 to A2, with speaking from day one 🌍Online — learn from anywhere in the world 🏫Offline — full language immersion 👥Group classes — motivation, support & shared experience 👤Individual lessons — flexible schedule, personalized approach 🎉 Plus, learn about our linguistic and cultural events for students! 📅Free participation — sign up via the linkhere #russianlanguage#learnrussian#russiancourses#languagelearning#onlinelearning

Russian House Brussels-Europe

@rushousebrussels · Post #2626 · 24.10.2025 г., 05:41

🏔🇷🇺✨ When your Russian truly reaches new heights! Our student took his Russian — all the way to the Himalayas! 🏔 Russian at 5300 m! Language is more than words. It’s a journey, an inspiration, and the strength that lifts you higher. Our student is traveling in the Himalayas and… he used Russian at the top of a mountain! 😄 “I told them I study Russian at the Russian Language School in Brussels. And that I have very good teachers!” Even at the highest heights, you can talk about poetry, music and your favorite language. 😉 Did you know? Russian is one of the six official international languages and is spoken by an estimated up to 285 million people worldwide. 📍Where have you used your Russian abroad? Share your story in the comments — the most inspiring ones will be featured! Join us to learn Russian! We offer in-person classes, online courses, and individual lessons. #RussianHouseBrussels#LearnRussian#RussianLanguage#CulturalDiplomacy#RussianAbroad#DiscoverRussia#RussianCourses