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

Резултати

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

Пребарај: #patria

当前筛选 #patria清除筛选
Embajada de Venezuela en Rusia

@embavenezrusia · Post #2280 · 01.01.2026 г., 08:27

Querida familia venezolana, vecinos, vecinas, compañeros compañeras, hermanos, hermanas, compatriotas, cerramos el año 2025 en positivo. ¡Abracémonos! Para nosotros, los que buscamos el Alba, los que creamos el nuevo amanecer, la victoria no es una promesa, es un designio del destino. Y para despedir este 2025 les entrego la bandera original de Colombia la Grande, la que entregó el Libertador Simón Bolívar, hace 200 años, al Ejército victorioso, declarándolo vencedor. Les digo: 2026 tenemos plan, bandera, historia y seguiremos teniendo #Patria. ¡Feliz año Venezuela! ¡Feliz año nuevo a la humanidad entera! ¡Que viva la alegría! ¡Hasta la victoria siempre!

Hashtags

Вестник NATO

@nato_rus · Post #1710 · 16.09.2024 г., 12:37

Армия США провела демонстрационные стрельбы из 120-мм минометной системы Patria NEMO, установленной на новом гусеничном бронетранспортере AMPV. Подобной системой планируется оснастить механизированные подразделения, которым, по мнению армии, необходимо средство быстрого и точного ведения огня прямой и непрямой наводкой. 120-мм самоходный минометный комплекс Patria NEMO представляет собой дистанционно-управляемое орудие, которое может вести стрельбу как прямой, так и так и непрямой наводкой, в том числе и с ходу. Одной из ключевых особенностей является возможность многократного одновременного поражения цели (до шести снарядов). Гусеничная платформа AMPV выбрана для использования наравне с бронетехникой бригад, но потенциально минометная система может размещаться на других платформах. #НАТО#США#Patria#AMVP Вестник NATO

EmbajadaRusaVen

@embajadarusaven · Post #1402 · 22.02.2024 г., 23:06

Embajador Sergey Mélik-Bagdasárov: 💬 El 23 de febrero se celebra en #Rusia el Día del Defensor de la #Patria! 🤝 Felicito a todos los que están aportando a la lucha por Patria, por la #paz y la #libertad! 🙏Los agradecemos sus esfuerzos dedicación y valentía!

Marx21.it

@marx21news · Post #9802 · 25.02.2026 г., 15:24

Onore, dovere e diritto: la Gioventù cubana si prepara a difendere la Patria. Il Presidente Miguel Díaz-Canel ha partecipato questa settimana all’Esercitazione dimostrativa del Minint, nell’ambito della Giornata Nazionale della Difesa. Un momento speciale per condividere con i giovani cadetti dell’Istituto Superiore "Capitán San Luis". In un momento definito dallo stesso Presidente come "decisivo" per la nazione, questi giovani rappresentano la linfa nuova di cui parlava Martí: i pinos nuevos pronti a custodire il suolo patrio. Abbiamo ascoltato le loro voci: - Roxaura ci ricorda l'eredità di Fidel e la volontà di non permettere mai al nemico di soggiogare il Paese. - Yosuanis è chiaro: "La mia posizione è essere sempre saldo, in prima linea per la Rivoluzione". - Leyanet evoca la fibra di Mariana Grajales, fatta di fermezza e coraggio. Brenda lo dice con forza: "Difendere Cuba è un onore, un dovere, e persino un diritto". Di fronte alle crescenti minacce e all'aggressività imperialista, la risposta di Cuba è una sola: preparazione, unità e fermezza. Perché qui non si difende un governo, si difende la culla in cui si è nati. #Cuba#Patria#Difesa#Gioventù#Unità#Sovranità#Fidel#Martí#GiornataDellaDifesa https://www.marx21.it/internazionale/lonore-il-dovere-e-il-diritto-di-difendere-cuba/

Savino Balzano

@savinobalzano · Post #908 · 25.02.2025 г., 10:01

https://x.com/SavinoBalzano/status/1894326101435891724?t=DHW9UCHp6fo5xgthK89hDA&s=19 #Gentiloni: «Noi ci lagnamo un po' troppo di questa #UE, che alla fine è quello che c'è: uno straordinario baluardo di difesa dei servizi universali del welfare». Il primo premio, senza nemmeno aspettare la fine della giornata, della più grande cavolata del 25/02/2025 se lo aggiudica senza alcun dubbio @PaoloGentiloni. Ci congratuliamo con #PaoloGentiloni per aver vinto letteralmente a mani basse, non solo: si candida a pieno titolo per il conseguimento della targhetta in ottone per la più grossa fesseria sparata nell'intero 2025 (e, chissà, forse l'arco temporale potrebbe anche allargarsi: ma su questo ci vuole cautela, la concorrenza è forte). Mi sentirei di dire che, se sparare corbellerie fosse una partita di #tennis, oggi Paolo avrebbe stracciato anche #Sinner. Non te la prendere Paolì, il giudizio è politico e non c'è nulla di personale, però c'è un limite a tutto: ricordo, ero bambino, negli anni '90, si diceva che la nostra fosse la sanità migliore del mondo, ci si poteva permettere la seconda auto, tanti potevano andare in villeggiatura, si andava in pensione molto prima e cose di questo genere. Cose normali, se ci pensi, cose alle quali tu e i tuoi amici e familiari immagino siate abituati. Oggi è un disastro a causa dei tagli imposti dall'Unione Europea, operati principalmente dai governi guidati dal tuo partito (compreso quello nel quale tu eri Presidente del Consiglio). Il nuovo Patto di Stabilità - rispetto al quale come ex Commissario europeo per gli affari economici, hai enormi responsabilità - peggiorerà la situazione. Il discorso inflazionato sulla #sanità può essere esteso alla #scuola, all'#università, alla #ricerca, agli asili, al supporto alle famiglie e ai fragili, ai #trasporti, alle #pensioni: lo Stato sociale in questo Paese avvizzisce per colpa della politica di gente come te e di uomini come #MarioDraghi (o #MarioMonti), che eleggete a eroi della #Patria. Te la ricordi quella letterina che proprio #Draghi firmò nel 2011? si chiedeva ad esempio il contenimento di #salari e pensioni, facilitazione dei #licenziamenti: quel programma lo avete realizzato voi, prima sostenendo #Monti (quando "stavamo fallendo" con un debito pubblico enormemente inferiore a quello attuale) e poi andandovi a sedere a Palazzo Chigi in prima persona. I lavoratori li dovevate rappresentare e tutelare voi, ma l'art. 18 chi lo ha buttato nella pattumiera? i fascisti? #Trump? chi è stato? Le uniche eccezioni che siete disposti a contemplare rispetto ai limiti di spesa imposti dall'Unione Europea riguardano le #armi: siete questa gente qui. E allora Paolì è ora di farla finita co 'ste chiacchiere, tocca che cominciate una volta per tutte a fare le persone serie. Avete costretto l'#Italia all'umiliazione, lasciato passare lo stereotipo del paese spaghetti e mandolino che vive oltre le sue possibilità, nonostante siamo costantemente in avanzo primario e contributori netti di quel postribolo che tanto difendete. Insomma: l'Italia è stata costretta dall'Unione Europea alla svalutazione interna a causa di politici come te che ne hanno svilito la #Costituzione. Pertanto, ti chiedo solo una cortesia: non ci venire pure a prendere per i fondelli, che qui ci girano già abbastanza vorticosamente.

RISVEGLIO

@gianlucaprocaccinireport · Post #10146 · 04.01.2026 г., 08:51

La lezione di Boric 🇨🇱 " Come Governo del Cile esprimiamo la nostra preoccupazione e condanna per le azioni militari degli Stati Uniti in Venezuela e chiediamo una soluzione pacifica alla grave crisi che colpisce il Paese. Il Cile ribadisce il proprio impegno nei confronti dei principi fondamentali del diritto internazionale, quali il divieto dell’uso della forza, la non ingerenza negli affari interni degli Stati, la risoluzione pacifica delle controversie internazionali e l’integrità territoriale degli Stati. La crisi venezuelana deve essere risolta attraverso il dialogo e il sostegno del multilateralismo, e non attraverso la violenza o l’ingerenza straniera". Gabriel Boric #venezuela#patria#patriotas#bolivar#italia#europa#madrid#latinoamerica#cubadebate#colombia#SimónBolívar#GranColombia#Libertador#Bolivarianismo#Venezuela#Bolivia#Ecuador#Nicaragua#AméricaLatina#HistoriaLatina#UnidadLatinoamericana