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

Резултати

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

Пребарај: #ndc

当前筛选 #ndc清除筛选
Addis Standard

@addisstandardeng · Post #21653 · 09.03.2026 г., 11:08

#Commentary: #Ethiopian National Dialogue Commission: Monolingual mediator in multilingual country Established in 2021, the National Dialogue Commission (#NDC) is tasked with fostering inclusive dialogue, peace, and social cohesion in #Ethiopia. However, Mesfin Wodajo argues the Commission operates in a “de facto monolingual” manner in a country of more than eighty languages. Despite its commitment to inclusivity, he contends its heavy reliance on Amharic risks “alienating” large segments of the population. Mesfin cautions that “language could constrain or empower participants in such national dialogues" and emphasizes that the absence of a clear translation and interpreting strategy reflects an “age-old ideology of implicit linguistic nationalism.” He urges the NDC to “adopt a multilingual operational framework” to safeguard linguistic rights and ensure meaningful participation for all. https://addisstandard.com/?p=55668

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #45148 · 29.10.2024 г., 17:57

❗️Il #Senato manda a processo Carlo #Calenda: era stato querelato per diffamazione da Clemente #Mastella (#NdC) per un post durante la campagna elettorale delle europee. Il centrodestra si astiene, Calenda mandato a processo dagli alleati del campo largo. @UltimoraPolitics

Tutto Elezioni

@tuttoelezioni · Post #1428 · 24.11.2025 г., 20:00

#Italia🇮🇹 #Regionali #Campania ❗️Roberto #Fico (#M5S|LEFT; sostenuto anche da #PD|S&D, #AVS|G/EFA|LEFT, #PSI|S&D, #PRI|Centro, #PSDI|Centro-sinistra; #Volt|G/EFA, #IV|RE, #PiùEu|RE, #nDC|Centro, #NS|Centro-destra, liste minori e civici) è stato eletto Presidente della Giunta regionale della Campania. @TuttoElezioni

Ultimora.net - POLITICS

@Ultimorapolitics · Post #38204 · 03.05.2022 г., 04:11

#Italia#Elezioni#Provinciali#Avellino Il Tar di Salerno ha accolto il ricorso di Angelantonio D’Agostino disponendo l’annullamento delle operazioni elettorali concernenti l’elezione del Presidente della Provincia di Avellino relativamente alle fasce demografiche B e D e conseguente rinnovazione delle elezioni stesse limitatamente alle suddette fasce demografiche B e D. Le elezioni del 2021 avevano visto la vittoria di Rino #Buonopane, sostenuto da #PD, #M5S, #SI e #NdC con il 50.05% contro Angelo Antonio #D’Agostino, sostenuto dalla maggioranza comunale ad Avellino, #Davvero, #IV, #PiùE e #Azione, che aveva ottenuto il 49,95%. @UltimoraPolitics

Libertà è ragione

@libertaeragione · Post #4452 · 01.03.2026 г., 22:19

#Italia#Campania#Provinciali Provinciali #Caserta, dati finali - RICOSTRUZIONE ESCLUSIVA OsservatorioItaliano: 🔵 Centro destra per la Provincia di Caserta (#FdI-#FI-#Lega-#NM): 31.85% - 6 seggi 🟠 Campo Largo per Caserta (#PD-#AVS-#NdC-#IV): 21.42% - 4 seggi 🔵 Anacleto Colombiano Presidente (Civica centrodestra legata a Colombiano): 20.61% - 3 seggi 🟠#ATA|Deluchiani: 14.60% - 2 seggi 🔵 Liberi e Democratici per Caserta (#Azione-dissidenti #PSI legati al consigliere regionale Giovanni Iovino): 8.90% - 1 seggio 🟠 Avanti Caserta (#PSI): 2.63% - 0 seggi *Nella giornata di domani verranno pubblicati i dati ufficiali @OsservatorioItaliano

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #40003 · 15.06.2022 г., 19:01

#Sondaggi#Italia Sondaggio di EMG: #FdI|ECR: 22% #PD|S&D: 22% (+0,5) #Lega|ID: 14% (-1) #M5S|NI: 13% (-0,5) #FI|EPP: 8% #Azione-#PiùE|RE: 4,5% #IV|RE: 4% #EV|G/EFA: 2% #SI|LEFT: 2% #ItalExit|Euroscettici: 2% #NcI (#LP-#AR-#CP)|Centro: 2% #A1MDP|S&D: 2% (+1) #IaC (#Coraggio-#Cambiamo-#IDeA-#NdC)|Centro-destra|ECR: 2% Data rilevazione: 13 giugno +/-: 7 giugno Intervistati: 1562 @UltimoraPolitics24

L'Osservatorio - Italia

@Osservatorioitaliano · Post #24768 · 28.03.2026 г., 07:42

#Italia#Comunali#Campania Comunali di #Salerno: De Luca spacca le coalizioni ed è un tutti contro tutti. Di seguito i candidati: 📌 Vincenzo #DeLuca, sostenuto da #PD, #PSI, #EV, #ATA e civiche deluchiane 📌 Franco Massimo #Lanocita, sostenuto da #M5S, #SI e civiche di sinistra 📌 Armando Zambrano, sostenuto da #Azione, #IV, #NdC, #PLD e #FI 📌 Gherardo Maria #Marenghi, sostenuto da #FdI, #Lega e #NM 📌 Mimmo Ventura, sostenuto da #AP e Dimensione Bandecchi 📌 Alessandro Turchi, civico @OsservatorioItaliano

Tutto Elezioni

@tuttoelezioni · Post #1433 · 25.11.2025 г., 06:29

#Italia🇮🇹 #Regionali #Campania Risultati finali. Sezioni scrutinate: 5.825/5.825 (100%). 🟧 Roberto #Fico (#M5S|LEFT; sostenuto anche da #PD|S&D, #AVS|G/EFA|LEFT, #PSI|S&D, #PRI|Centro, #PSDI|Centro-sinistra; #Volt|G/EFA, #IV|RE, #PiùEu|RE, #nDC|Centro, #NS|Centro-destra, liste minori e civici): 60,63% ✅ 🟦 Edmondo #Cirielli (#FdI|ECR, #FI|PPE, #LSP|PfE, #NM|PPE, #UdC|PPE, #DC|Centro; #DCR|Centro, #NPSI|Centro-destra, #ScN|Meridionalisti, liste minori e civici): 35,72% 🟥 Giuliano #Granato (#PCI|Estrema sinistra, #PaP|Estrema sinistra, #PRC|LEFT): 2,03% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1427 · 24.11.2025 г., 19:59

#Italia🇮🇹 #Regionali #Campania Risultati parziali. Sezioni scrutinate: 2.943/5.825 (50,52%). 🟧 Roberto #Fico (#M5S|LEFT; sostenuto anche da #PD|S&D, #AVS|G/EFA|LEFT, #PSI|S&D, #PRI|Centro, #PSDI|Centro-sinistra; #Volt|G/EFA, #IV|RE, #PiùEu|RE, #nDC|Centro, #NS|Centro-destra, liste minori e civici): 60,93% 🟦 Edmondo #Cirielli (#FdI|ECR, #FI|PPE, #LSP|PfE, #NM|PPE, #UdC|PPE, #DC|Centro; #DCR|Centro, #NPSI|Centro-destra, #ScN|Meridionalisti, liste minori e civici): 35,25% 🟥 Giuliano #Granato (#PCI|Estrema sinistra, #PaP|Estrema sinistra, #PRC|LEFT): 2,18% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1420 · 24.11.2025 г., 18:39

#Italia🇮🇹 #Regionali #Campania Risultati parziali. Sezioni scrutinate: 1.380/5.825 (23,69%). 🟧 Roberto #Fico (#M5S|LEFT; sostenuto anche da #PD|S&D, #AVS|G/EFA|LEFT, #PSI|S&D, #PRI|Centro, #PSDI|Centro-sinistra; #Volt|G/EFA, #IV|RE, #PiùEu|RE, #nDC|Centro, #NS|Centro-destra, liste minori e civici): 61,35% 🟦 Edmondo #Cirielli (#FdI|ECR, #FI|PPE, #LSP|PfE, #NM|PPE, #UdC|PPE, #DC|Centro; #DCR|Centro, #NPSI|Centro-destra, #ScN|Meridionalisti, liste minori e civici): 34,94% 🟥 Giuliano #Granato (#PCI|Estrema sinistra, #PaP|Estrema sinistra, #PRC|LEFT): 2,11% @TuttoElezioni

12
ПретходнаСтраница 1 од 2Следна