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

Резултати

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

Пребарај: #lotta

当前筛选 #lotta清除筛选
Capibara Media

@gabgerm · Post #3699 · 16.04.2026 г., 17:20

LA RIVOLUZIONE PARTE DALLA CARTA IGIENICA? Negli Stati Uniti divampa la rabbia dei lavoratori sfruttati. E non in modo figurato. Anzi. In California infatti un dipendente ha appiccato il fuoco nel magazzino di carta igienica dove lavora. Le sue parole sono state: "Tutto quello dovevate fare era pagarci abbastanza per vivere". L'incendio, divampato intorno alle 00:30 del 7 aprile, ha distrutto il magazzino di 111 mila metri quadrati e i prodotti cartacei al suo interno, per un valore di circa 500 milioni di dollari. Non solo, ma a pochissimi giorni di distanza c'è stato un altro incendio questa volta nel distretto di Queens a New York, sempre in un magazzino. E con esso molti altri le cui cause non sono ancora state accertate. E voi che ne pensate? Gesto estremo ed esagerato oppure conseguenza ovvia di un malcontento sociale ormai ai massimi livelli? Fateci sapere la vostra! #sfruttamento#lavoro#rivoluzione#cartaigienica#lotta 🦆 Segui il Capibara 🦜

Savino Balzano

@savinobalzano · Post #991 · 26.04.2025 г., 08:22

https://x.com/SavinoBalzano/status/1916044211863929087?t=3bldlhz_SThqlX_N3syjpg&s=19 Antonio Scurati Nome di battaglia: Whatever It Takes Unità: Battaglione Eurobond Ma quanto ci hanno commosso ieri le parole di Antonio #Scurati? Un accorato appello alla #lotta, alla #democrazia. Oh, mica esagero se lo definisco un partigiano dei nostri tempi. È anche grazie al messaggio di intellettuali come lui che possiamo celebrare il memoriale della #libertà, della #resistenza. Solo un "piccolissimo" dettaglio, giusto per completezza, senza nulla togliere alla grandezza e alla gloria del nostro Tony: una letterina, piccola piccola, che lui stesso firmò e pubblicò sulle colonne del Corriere della Sera. Era il 17 luglio 2022. Con assoluta fermezza, durezza, spietatezza intellettuale, il sor Tonino si rivolgeva a Mario #Draghi. La versione integrale la trovate ovviamente online. Io qui vi propongo un piccolo stralcio. Leggetela, la missiva di questo guerrigliero, e vi sembrerà di essere con lui, in montagna, membri di un GAP. Altro che Pavese! gli spiccia casa, come si dice a Roma. «Esimio Presidente Draghi, mi scuso in anticipo di queste mie parole. Le sto, infatti, scrivendo per chiederle di umiliarsi. (…) Qualunque cosa si voglia pensare di lei, non si può negare che la sua sia la storia di un uomo di straordinario successo. Durante tutta la sua vita, lei ha bruciato le tappe di una carriera formidabile. Prima da Governatore della Banca d’Italia e poi da Presidente della Banca centrale europea, lei ha retto le sorti di una nazione e di un continente; le ha tenute in pugno con il piglio del dominatore, sorretto da una potente competenza, baciato dal successo, guadagnando una levatura internazionale, un prestigio globale, un posto di tutto rispetto nei libri di storia. Ha conosciuto il potere, quello vero, ha conosciuto la fama degli uomini illustri, la vertiginosa responsabilità di chi, da vette inarrivabili, decide quasi da solo della vita dei molti. (…) Ciò che sta accadendo in queste ore ripropone, purtroppo, un copione già andato in scena molte volte sulla ribalta del nostro Paese, irresistibilmente sedotto dalla commedia: la tragedia che scade in farsa. Ora lei, pur dovendo fronteggiare una pandemia, una guerra, una crisi economica con pochi precedenti e una ambientale senza uguali, è spinto alle dimissioni da un accanito torneo di aspirazioni miserabili, da sudicie congiure di palazzo, da calcoli meschini, irresponsabili e spregiudicati di uomini che, presi singolarmente, non valgono un’unghia della sua mano sinistra. (…) Io non sono un politologo. Interpreto, più modestamente, la realtà da romanziere. Tutto ciò premesso, devo concludere che se lei domani, dopo le sue risolute, dignitose e sdegnose dimissioni, tornasse sui suoi passi e rinnovasse la sua disponibilità a guidare il paese in questa crisi epocale fino alla scadenza della legislatura, la sua diverrebbe la storia di una caduta. Ed è proprio questo che io e moltissimi italiani le chiediamo: faccia torto a se stesso, rinunci perfino al senso della sua dignità personale, si sminuisca nello stillicidio quotidiano del governo di uomini che hanno a cuore soltanto l’imminente tornaconto elettorale. Quel che tanti italiani le chiedono sarebbe, me ne rendo conto, davvero un grande sacrificio personale in nome dell’interesse generale. Il suo personaggio ne uscirebbe, forse, diminuito ma la sua persona conoscerebbe un nuovo genere di grandezza». Insomma, tutto tranne le elezioni: meglio il governo del banchiere. E niente, come faremmo senza questi irriducibili custodi della nostra amata Repubblica? Buon #25aprile anche a te, Totò, perchè il #25aprile_è_ANTIFASCISTA!