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

Резултати

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

Пребарај: #lula

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

@ULTIMORAPOLITICS · Post #42585 · 26.12.2022 г., 13:52

❗ANSA - In Brasile la polizia ha arrestato un uomo accusato di aver piazzato esplosivo su un'autocisterna da far esplodere nei pressi dell'aeroporto di Brasilia per creare "caos" in occasione dell'insediamento, il primo gennaio, del presidente di sinistra #Lula. @UltimoraPolitics

Hashtags

^_^

@rainforest_lin · Post #270 · 17.04.2023 г., 06:59

巴西總統盧拉 #Lula 呼籲歐美停止軍援烏克蘭,不要「鼓勵」戰爭。 美國不具名官員對他的言論不滿,反問巴西出現國會騷亂,質疑盧拉是否合法當選時,中俄有公開支持巴西的民主嗎? http://europechinese.blogspot.com/2023/04/blog-post_17.html

Hashtags

SIN LÍNEA MX (OFICIAL)

@SINLINEAMXnoticias · Post #31401 · 10.04.2026 г., 22:38

¡Cierran la alianza! 🤯 🔴 Los gobiernos de #Trump y #Lula formalizaron este viernes un acuerdo de cooperación bilateral en materia de seguridad 🇺🇸🇧🇷 | ¿Qué opinas? 👇🏻 https://sinlineamx.com/brasil-y-eu-unen-contra-crimen-trafico-armas/

Hashtags

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #51492 · 18.12.2025 г., 17:07

🇧🇷🇮🇹 Accordo #UE-Mercosur, il presidente brasiliano #Lula: "Ho parlato con #Meloni e mi ha spiegato che non è contraria all'accordo, che sta vivendo un certo imbarazzo politico a causa degli agricoltori italiani, ma che è certa di poterli convincere ad accettarlo. Poi mi ha chiesto che se avessimo avuto pazienza per una settimana, 10 giorni, al massimo un mese, l'Italia avrebbe aderito" (Ansa)

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #51491 · 18.12.2025 г., 11:56

🇧🇷🇮🇹🇫🇷#Brasile – Il presidente #Lula avverte #Macron e #Meloni: "Se non si chiude ora l'accordo di libero scambio tra #UE e #Mercosur, non firmeremo mentre io sarò presidente. Aspettiamo questo accordo da 26 anni. L'accordo è più favorevole a loro che a noi. La #Francia non vuole farlo per via dei suoi agricoltori. L'#Italia non vuole farlo, non so perché". @UltimoraPolitics24

Antiescuálidos

@antiescualidos · Post #11774 · 14.01.2026 г., 18:02

🇧🇷🇷🇺🔥Rusia y Brasil se mueven ante la escalada de EE.UU. contra Venezuela ⚡️Tras los bombardeos de Estados Unidos y el secuestro del presidente venezolano, Putin y Lula coincidieron en que la ofensiva de Washington amenaza la estabilidad regional y vulnera principios básicos del derecho internacional. 🗣Según el Kremlin, ambos líderes acordaron articular una respuesta diplomática conjunta desde la ONU y los BRICS para contener el intervencionismo estadounidense, que vuelve a convertir a América Latina en escenario de presión imperial. #VenezuelaNoEstáSola #SoberaníaNacional #NoAlImperialismo #Putin #Lula #BRICS #ONU #AméricaLatina #Geopolítica #ZonaDePaz

Ultimora.net - POLITICS

@Ultimorapolitics · Post #38017 · 29.04.2022 г., 19:30

#Sondaggi#Brasile#Presidenziali Sondaggio di PoderData: #Lula (#PT|Centro-sinistra): 41% (+1) Jair #Bolsonaro (#PL|Destra radicale): 36% (+6) Ciro #Gomes (#PDT|Centro-sinistra): 6% (-1) João #Doria (#PSDB|Centro-destra): 4% (+2) André #Janones (#AVANTE|Centro populista): 3% (+1) Simone #Tebet (#MDB|Centro): 1% (-1) Luciano #Bivar (#UNIÃO|Centro-destra): 1% (+1) Luiz Felipe #DAvila (app. #NOVO|Destra libertaria): 0% Vera Lúcia #Salgado (#PSTU|Sinistra radicale morenista): 0% José Maria #Eymael (#DC|Centro-destra cattolico): 0% Sofia #Manzano (#PCB|Estrema sinistra): 0% Leonardo #Péricles (#UP|Estrema sinistra): 0% Nessuno/Scheda bianca: 4% (-1) Non so: 3% Data rilevazione: 24-26 aprile +/-: 13-15 marzo Intervistati: 3000 @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37361 · 22.04.2022 г., 20:47

#Sondaggi#Brasile#Presidenziali Sondaggio di Exame/IDEIA: #Lula (#PT|Centro-sinistra): 42% (+2) Jair #Bolsonaro (#PL|Destra radicale): 33% (+4) Ciro #Gomes (#PDT|Centro-sinistra): 10% (+1) João #Doria (#PSDB|Centro-destra): 3% (+2) André #Janones (#AVANTE|Centro populista): 1% Simone #Tebet (#MDB|Centro): 1% José Maria #Eymael (#DC|Centro-destra cattolico): 1% (+1) Sofia #Manzano (#PCB|Estrema sinistra): 1% (+1) Leonardo #Péricles (#UP|Estrema sinistra): 1% (+1) Luiz Felipe #DAvila (app. #NOVO|Destra libertaria): 0,5% (+0,1) Vera Lúcia #Salgado (#PSTU|Sinistra radicale morenista): 0,3% (+0,3) Luciano #Bivar (#UNIÃO|Centro-destra): 0,2% (+0,2) Aldo #Rebelo (#PDT|Centro-sinistra): 0,1% Non so: 6% (+4) Nessuno/Scheda bianca: 1% (-3) Data rilevazione: 15-20 aprile +/-: 18-23 marzo Intervistati: 1500 @UltimoraPolitics