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

Пребарај: #sanita

当前筛选 #sanita清除筛选
Savino Balzano

@savinobalzano · Post #658 · 07.06.2024 г., 07:30

Secondo la Fondazione GIMBE, sono 37 i miliardi che mancano all'appello nella nostra sanità pubblica e sono il frutto di tagli drammatici operati dai governi che si sono succeduti alla guida del Paese. I governi record nei tagli? Quelli di Letta, Renzi, Gentiloni: sommando i loro tagli si superano i 33 miliardi di euro. Questo signfica assenza di personale (medici e infermieri, ad esempio) e crollo del numero dei posti letto. Lo sottolineo perché trovo indegna la campagna di strumentalizzazione del Partito Democratico e della sua Segretaria: facendo leva sulla sofferenza di malati e famiglie si cerca disperatamente di strappare qualche voto addossando ad altri le proprie responsabilità. Che poi sono le stesse responsabilità che riguardano trasporto pubblico, scuola, università, lavoro e pensioni. Le riforme peggiori le hanno fatte loro. E perché le realizzavano quelle riforme? Erano scelte impopolari, eppure le compivano: per quale motivo? Obbedivano agli ordini di Unione Europea e BCE. C'è un elefante gigantesco nella stanza e si finge ipocritamente di non vederlo: la Costituzione prevede delle cose e l'Unione Europea impone l'opposto. L'Unione Europea è semplicemente incostituzionale. Il problema grosso, in definitiva, è che il garante di quella Costituzione, il nostro Presidente della Repubblica, parla di sovranità europea in un giorno di festa nazionale: le cose si mettono davvero male. Sentite cosa mi risponde il Prof. Ivan Cavicchi, esperto di politiche sanitarie e autore di nomerosi importanti volumi sulla materia. La mia al TG Plus di Cusano Italia TV. #sanitàpubblica #EllySchlein#Schlein https://www.youtube.com/watch?v=XhSvWaljImw&ab_channel=SavinoBalzano

Savino Balzano

@savinobalzano · Post #656 · 06.06.2024 г., 09:05

Strumentalizzare pappagallescamente la questione sanitaria per un'intera campagna elettorale è indegno: far leva sulla sofferenza dei malati e delle loro famiglie rappresenta un punto bassissimo nel nostro dibattito pubblico. Parlo di strumentalizzazioni dal momento che dal 2011 in poi la sanità pubblica ha subito decine di miliardi di tagli e al governo c'è stato praticamente sempre il PD. Per quanto riguarda gli sperperi in materia di immigrazione e accoglienza, Bonelli e Fratoianni facciano un colpo di telefono alla suocera e alla compagna di Soumahoro. Se quella di Meloni vi pare una mossa disperata, cari europeisti, domandatevi perché arrivare a tanto: il vostro Emmanuel Macron ha disposto la presenza dell'esercito a Ventimiglia pur di non accogliere i migranti. La mia al TG Plus di Cusano Italia TV https://www.youtube.com/watch?v=Ldt0iJx9cak&ab_channel=SavinoBalzano #sanitàpubblica #UnioneEuropea#pd#immigrazione

Savino Balzano

@savinobalzano · Post #488 · 25.10.2023 г., 12:41

Ieri ho avuto l'opportunità di confrontarmi con Vito Procacci, il medico multato per aver lavorato troppo durante la crisi sanitaria, il dottore che è riuscito a smuovere il Quirinale. Durante la crisi sanitaria ci dicevano che avremmo dovuto imparare una lezione importante, lo abbiamo fatto? L'ho chiesto direttamente a lui. La mia al TG Plus di Cusano Italia TV #italia#politica#informazione#attualità#notizie#dibattito#giornalismo#televisione#sanitàpubblica #sanità https://www.youtube.com/watch?v=Geq0QAOiPwg&ab_channel=SavinoBalzano