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

Резултати

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

Пребарај: #salvini

当前筛选 #salvini清除筛选
Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52216 · 18.03.2026 г., 19:41

Il ministro delle Infrastrutture e Trasporti Matteo #Salvini annuncia che il Consiglio dei ministri ha approvato un decreto che prevede: "un sostanzioso taglio delle accise, che già dalle prossime ore si trasformerà in una riduzione del prezzo della benzina e del diesel". Aggiunge di aver convocato 37 rappresentanti delle compagnie petrolifere chiedendo responsabilità. @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52213 · 18.03.2026 г., 17:34

Il ministro delle Infrastrutture e dei Trasporti Matteo #Salvini dichiara: "Stiamo lavorando già da stasera con un primo sostanziale taglio delle accise che possa diventare uno sconto alla pompa già nelle prossime ore". Uscendo dalla Prefettura di Milano al termine del tavolo con le compagnie petrolifere, Matteo #Salvini afferma di essere soddisfatto e precisa: "Sono soddisfatto, mi sembra che abbiano capito che famiglie e imprese non possono continuare a pagare benzina e gasolio a questi livelli" @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52068 · 01.03.2026 г., 19:32

Matteo #Salvini: "Fatto salvo che noi preferiamo sempre la via diplomatica, però se un regime sanguinario islamico prepara la bomba atomica e vuole cancellare i Paesi occidentali dalla faccia della terra, chi è intervenuto ha fatto bene". Aggiunge che la diplomazia è preferibile ma "con certa gente il convincimento deve essere accompagnato da altro". @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52056 · 01.03.2026 г., 11:19

Matteo #Salvini afferma: "Che ci siano gli iraniani che festeggiano in Iran e nel mondo e che ci siano alcune decine di nostalgici comunisti che riescono perfino a difendere l'ayatollah criminale, vabbè, siamo in democrazia, ognuno difende chi crede". @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52039 · 27.02.2026 г., 17:45

Matteo #Salvini esprime dolore per il deragliamento del tram a Milano e ringrazia i soccorritori: "Sono addolorato per quanto successo nella mia Milano. Una preghiera per chi è stato coinvolto nel tragico incidente e un ringraziamento ai soccorritori, nella certezza che verrà fatta chiarezza sui motivi dell'incidente" @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52020 · 24.02.2026 г., 12:10

Matteo #Salvini: “Quattro anni di guerra, morte e distruzione, ogni giorno che passa è un giorno di troppo. Oggi più che mai è necessario uno sforzo diplomatico da parte di tutti, nessuno escluso, per seguire il percorso tracciato dal Santo Padre e dagli Usa e arrivare finalmente alla PACE.” @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #51945 · 14.02.2026 г., 11:34

Matteo #Salvini afferma: "Odiosi atti criminali contro i lavoratori e contro l'Italia. È stata aumentata la vigilanza e abbiamo incrementato i controlli per stanare questi delinquenti, sperando che nessuno minimizzi o giustifichi gesti criminali che mettono a rischio la vita delle persone" dopo la notizia di nuovi sabotaggi sull'Alta velocità. @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #51866 · 08.02.2026 г., 10:18

Matteo #Salvini: “A pochi giorni dalle vergognose violenze di Torino, altri scontri, altre aggressioni alle Forze dell’Ordine. Questi non sono manifestanti: sono criminali! E devono sapere che chi tocca una divisa, offende tutti gli italiani. Orgogliosi di aver voluto un nuovo pacchetto Sicurezza che consentirà interventi ancora più efficaci contro balordi e delinquenti.” @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #51863 · 07.02.2026 г., 15:01

Matteo #Salvini annuncia la proposta di legge della Lega per modificare l'articolo 67 della Costituzione e introdurre il vincolo di mandato: "Ogni membro del Parlamento rappresenta la Nazione ed esercita le sue funzioni con vincolo di mandato. I membri del Parlamento che, all'inizio del mandato o nel corso della legislatura, aderiscono ad un gruppo parlamentare che rappresenta un partito o movimento politico diverso da quello a cui appartenevano al momento dell'elezione decadono dal mandato parlamentare". @UltimoraPolitics24

Hashtags

123•••10•••20•••30•••3334
ПретходнаСтраница 1 од 34Следна