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 слични објави

Пребарај: #rusevi

当前筛选 #rusevi清除筛选
Ankara Rus Evi

@ankara_rusevi · Post #5594 · 22.10.2025 г., 08:12

🕊️Rus Evi Ankara’dan “Halk Diplomasisinin Yüzüncü Yılı” projesine anlamlı katkı Rossotrudnichestvo’nun 1925–2025 yıllarını kapsayan “Halk Diplomasisinin Yüzüncü Yılı” projesi kapsamında Rus Evi Ankara Moskova’da başlatılan girişime destek verdi. Moskova’nın medya cephelerinde ve Vnukovo Uluslararası Havalimanı’nda, XX. yüzyılın önde gelen isimlerinin Rusya hakkında söylediği dostluk, karşılıklı anlayış ve halklar arasındaki iş birliği fikirlerini yansıtan alıntılar paylaşıldı. Bu girişim güvenin, karşılıklı saygının ve kültürel diyalogun önemini hatırlatıyor. Çünkü bunlar, geçmişte olduğu gibi bugün de gerçek diplomasinin dili. Rus Evi Ankara, proje kapsamında iki özel afiş hazırladı. İlkinde, Türkiye Cumhuriyeti’nin kurucusu Mustafa Kemal Atatürk’ün şu sözleri yer alıyor: “Bugün Sovyet Rusya dostumuzdur, komşumuzdur,müttefikimizdir. Bu dostluğa ihtiyacımız vardır.” Bu alıntı, Türk halkı için özel bir anlam taşıyor ve Türk-Rus dostluğunun köklü temellerini simgeliyor. İkinci afiş, 1930’da SSCB’yi ziyaret eden Nobel ödüllü Hintli yazar Rabindranath Tagore’a adandı. Üzerinde şu sözleri yer alıyor: “Hiçbir zaman başka halklarla karşılıklı anlayış kurmaya bu kadar içten ve tutkulu bir şekilde çabalayan bir ulus görmemiştim.” Bu sözler, Rus Evi için de ayrı bir anlam taşıyor; çünkü bina Rabindranath Tagore Caddesi üzerinde bulunuyor. Böylece proje, sadece anı değeri taşıyan bir etkinlik değil, aynı zamanda halklar arasında dostluk, barış ve kültürel etkileşimin simgesi haline ne geldi. #Rossotrudnichestvo#RusEvi#HalkDiplomasisininYüzüncüYılı

Ankara Rus Evi

@ankara_rusevi · Post #5603 · 22.10.2025 г., 14:57

🌐İstanbul’da “Doğu – Batı Uluslararası Rus Dili Haftası” başladı 21–23 Ekim tarihleri arasında Yeditepe Üniversitesi’nde düzenlenen Uluslararası Rus Dili Haftası, Avrupa ülkeleri ve Türkiye’den 80’den fazla öğretmen ve araştırmacıyı bir araya getiriyor. Katılımcılar, Rusçanın yabancı dil olarak öğretilmesine yönelik güncel yöntemleri, ulusal uygulamaları ve akademik iş birliğinin geleceğini tartışacaklar. 📘 Programda: 🟣 Stratejik oturumlar ve ileri düzey eğitim seminerleri 🟣 Rusçanın küresel bir değer olarak rolüne dair genel oturum 🟣 Dilin güncel eğilimleri ve öğretim yöntemlerine adanmış bir dizi atölye ve yuvarlak masa toplantısı “Doğu – Batı Uluslararası Rus Dili Haftası” üç yıldır düzenleniyor. Bu süre içinde İstanbul’daki forum, Rusçanın yabancı dil olarak öğretimi alanında uzmanların Rusya, Türkiye ve Avrupa’dan bir araya geldiği en büyük platformlardan biri haline geldi. Etkinlik, RKI (Rus Dilinin Yabancı Dil Olarak Öğretimi) alanındaki güncel eğilimleri tartışmak ve rusistik çalışmaların yurt dışında tanıtımı için üniversiteler arası iş birliği perspektifleri belirlemek açısından büyük önem taşıyor. Rossotrudnichestvo Başkan Yardımcısı Pavel Anatolyeviç Şevtsov etkinlik hakkında şunları kaydetti: “Bu projenin popülerliği, Rus dilinin uluslararası eğitim ve bilim alanındaki önemini koruduğunun en iyi göstergesidir.” Organizatörler: Rossotrudnichestvo, Moskova Devlet Dilbilim Üniversitesi. #Rossotrudnichestvo#RusEvi#RussianHouse

Ankara Rus Evi

@ankara_rusevi · Post #5640 · 27.10.2025 г., 13:25

26 Ekim’de Moskova’daki Ulusal “Rusya” Merkezinde, halk diplomasisinin 100. yılına adanan Uluslararası İşbirliği Forumu düzenlendi. Bu büyük ölçekli etkinlik, 100’den fazla ülkeden 2000’in üzerinde katılımcıyı — devlet yetkililerini, diplomatları, gazetecileri, tarihçileri ve sanat camiası temsilcilerini — bir araya getirdi. Forumun ana konuları arasında halk diplomasisinin geliştirilmesi, kültürel etkileşimin uluslararası ilişkilerin güçlenmesindeki rolü, dinler arası diyalog, insani işbirliğinin politizasyonuna karşı mücadele ve yaptırımlar koşullarında kültürel diplomasinin geleceği yer aldı. Panel oturumuna, Rus Evi’nin desteğiyle Moskova’ya gelen Yunus Emre Enstitüsü Başkanı Prof. Abdurrahman Aliy de katıldı. Ayrıca temsilciliğin daveti üzerine Türk senarist ve yapımcı Sabah Duru da foruma iştirak etti. Forumun organizatörleri Rossotrudnichestvo, Rusya Bilgi Topluluğu “Znanie”, Ulusal “Rusya” Merkezi ve Roskongress Vakfı’dır. Etkinlik, Rusya Federasyonu Cumhurbaşkanlığına bağlı Sivil Toplumun Gelişimi ve İnsan Hakları Konseyi’nin desteğiyle gerçekleşti. Genel partner: PSB Bank. #Россотрудничество#Rossotrudnichestvo#RusEvi#RussianHouse#HalkDiplomasisininYüzüncüYılı