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

Резултати

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

Пребарај: #ifes

当前筛选 #ifes清除筛选
Comisia Electorală Centrală

@cecmoldova · Post #3488 · 13.02.2026 г., 08:43

📌Conducerea Comisiei Electorale Centrale a avut o întrevedere cu Anthony Banbury, Președintele Fundației Internaționale pentru Sisteme Electorale (IFES), în cadrul căreia au fost evaluate principalele realizări ale parteneriatului instituțional și discutate direcțiile de cooperare pentru perioada următoare. 💬În cadrul întrevederii au fost abordate și domeniile prioritare pentru sprijinul viitor, printre care consolidarea încrederii publice în instituțiile electorale, informarea corectă a cetățenilor în contextul noilor realități electorale, precum și combaterea manipulării informaționale, inclusiv prin dezvoltarea unui registru al dezinformării. #CECMoldova#DemocrațiaContează#IFES

Crossroads_am

@crossroadsarm · Post #50902 · 27.04.2026 г., 12:14

Քննարկվել է ՀՀ ԿԸՀ-ի և IFES-ի միջև համագործակցությունը Ընտրական համակարգերի միջազգային հաստատության (IFES) նախագահ և գործադիր տնօրեն Էնթոնի Բանբըրին և IFES-ի հայաստանյան գրասենյակի ներկայացուցիչները հանդիպել են ՀՀ Կենտրոնական ընտրական հանձնաժողովի նախագահ Վահագն Հովակիմյանի հետ: Անդրադարձ է կատարվել նաև առաջիկա համապետական և ՏԻՄ ընտրությունների նախապատրաստական աշխատանքներին: #ԿԸՀ#IFES#ընտրություններ

Comisia Electorală Centrală

@cecmoldova · Post #2645 · 12.12.2024 г., 14:05

📌𝐂𝐨𝐦𝐢𝐬𝐢𝐚 𝐄𝐥𝐞𝐜𝐭𝐨𝐫𝐚𝐥ă 𝐂𝐞𝐧𝐭𝐫𝐚𝐥ă 𝐚 𝐚𝐝𝐞𝐫𝐚𝐭 𝐥𝐚 𝐑𝐞ț𝐞𝐚𝐮𝐚 𝐄𝐮𝐫𝐨𝐩𝐞𝐚𝐧ă 𝐩𝐞𝐧𝐭𝐫𝐮 𝐒𝐮𝐩𝐫𝐚𝐯𝐞𝐠𝐡𝐞𝐫𝐞𝐚 ș𝐢 𝐑𝐞𝐠𝐥𝐞𝐦𝐞𝐧𝐭ă𝐫𝐢𝐢 𝐕𝐞𝐧𝐢𝐭𝐮𝐫𝐢𝐥𝐨𝐫 ș𝐢 𝐂𝐡𝐞𝐥𝐭𝐮𝐢𝐞𝐥𝐢𝐥𝐨𝐫 𝐏𝐨𝐥𝐢𝐭𝐢𝐜𝐞 (𝐄𝐍𝐅𝐎𝐑𝐂𝐄) #CECMoldova#DemocrațiaContează#ENFORCE#IFES

Comisia Electorală Centrală

@cecmoldova · Post #3510 · 13.03.2026 г., 12:56

👉Membrii și funcționarii Comisiei Electorale Centrale și directoarea Centrului de instruire continuă în domeniul electoral, au participat, în perioada 12–13 martie 2026, la un atelier de leadership electoral, desfășurat cu suportul IFES. Instruirea a fost elaborată în baza curriculumului executiv IFES în leadership electoral (iEXCEL). 🖊Scopul instruirii a fost de a valorifica punctele forte ale managerilor din cadrul instituției în vederea consolidării independenței instituționale, îmbunătățirii capacității de organizare și gestionare a proceselor electorale în situații de criză, combaterii manipulării informaționale și promovării rezilienței instituționale. #CECMoldova#DemocrațiaContează#iEXCEL#IFES#CICDE

Comisia Electorală Centrală

@cecmoldova · Post #2988 · 07.07.2025 г., 09:21

Stimați reprezentanți ai mass-media, Comisia Electorală Centrală are deosebita plăcere să vă invite la 𝐂𝐨𝐧𝐟𝐞𝐫𝐢𝐧ț𝐚 𝐑𝐞𝐠𝐢𝐨𝐧𝐚𝐥ă „𝐁𝐚𝐧𝐢𝐢 î𝐧 𝐏𝐨𝐥𝐢𝐭𝐢𝐜ă”, cu subiectul „𝐁𝐚𝐧𝐢, 𝐒𝐞𝐜𝐮𝐫𝐢𝐭𝐚𝐭𝐞 ș𝐢 𝐃𝐞𝐦𝐨𝐜𝐫𝐚ț𝐢𝐞: 𝐀𝐩ă𝐫𝐚𝐫𝐞𝐚 𝐢𝐧𝐭𝐞𝐠𝐫𝐢𝐭ăț𝐢𝐢 𝐞𝐥𝐞𝐜𝐭𝐨𝐫𝐚𝐥𝐞 î𝐧 𝐞𝐫𝐚 𝐝𝐢𝐠𝐢𝐭𝐚𝐥ă”, care se va desfășura în perioada 𝟖-𝟗 𝐢𝐮𝐥𝐢𝐞 𝟐𝟎𝟐𝟓 𝐥𝐚 𝐂𝐡𝐢ș𝐢𝐧ă𝐮. Conferința va avea loc la 𝐂𝐡𝐢ș𝐢𝐧ă𝐮, 𝐑𝐞𝐩𝐮𝐛𝐥𝐢𝐜𝐚 𝐌𝐨𝐥𝐝𝐨𝐯𝐚, în perioada 𝟖-𝟗 𝐢𝐮𝐥𝐢𝐞 𝟐𝟎𝟐𝟓, la 𝐔𝐫𝐛𝐚𝐧 𝐁𝐮𝐬𝐢𝐧𝐞𝐬𝐬 𝐂𝐞𝐧𝐭𝐞𝐫 (bld. Ștefan cel Mare, 115/1). Lucrările 𝐩𝐫𝐢𝐦𝐞𝐢 𝐳𝐢𝐥𝐞 a Conferinței vor începe la 𝐨𝐫𝐚 𝟎𝟗:𝟎𝟎. Detalii despre eveniment puteți găsi accesând adresa web https://moneyinpolitics.md 𝐀𝐓𝐄𝐍Ț𝐈𝐄! Accesul la eveniment a jurnaliștilor se va face în baza legitimațiilor de serviciu. Vă așteptăm! #CECMoldova#DemocrațiaContează#MiP#IDEA#CoE#IFES#WFD#IRI