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

Резултати

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

Пребарај: #rome

当前筛选 #rome清除筛选

የኢትዮጵያ ንጉሠ ነገሥት ግርማዊ ቀዳማዊ አፄ ኃይለሥላሴ ይፋዊ የመንግሥት ጉብኝት ለማድረግ ሮም በደረሱበት ወቅት ፤ ጥቅምት 27 ቀን 1963 ዓ.ም Ethiopian Emperor Haile Selassie, arrives in Rome for a state visit on November 6, 1970. #ታሪክን_ወደኋላ#TariknWedehuala#rome youtube.com/@tariknwedehuala11

TONlines – News

@tonlines · Post #6723 · 11.04.2025 г., 16:22

⚡️TON Society to Attend Blockchain Week Rome #TON#Blockchain#Rome The TON Society will be present at Blockchain Week Rome on May 9-10 at Palazzo dei Congressi. Attendees will have the opportunity to learn about the TON Ecosystem and enjoy a 50% discount using the promo code TON50. Source: link @tonlines

Le canzoni non sono un reato! La diciottenne Diana Naoko Loginova e i musicisti Alessandro e Vladislav della band Stoptime sono stati arrestati a San Pietroburgo per aver tenuto concerti in strada e aver eseguito canzoni di Monetochka e Noize MC. Ora Diana deve affrontare accuse penali per la sua musica e le sue parole sulla libertà. 📅 28 ottobre, ore 18:00, Largo Argentina (Roma) via San Nicola de Cesarini Stiamo manifestando a sostegno di Naoko e degli Stoptime. Ci saranno esibizioni dal vivo, un microfono aperto e canzoni per cui alcune persone sono attualmente in carcere. Liberta Naoko! Liberta gli Stoptime! Instagram link #rome#stoptime

Культурный

@culturnyy · Post #11650 · 20.05.2024 г., 04:20

А вот крайне любопытный флаг города Самора (Zamora) на границе с Португалией. Он состоит из девяти РАЗДЕЛЬНЫХ полос, восемь из которых символизируют восемь побед вождя лузитанов Вириату над римлянами во время Лузитанской войны 155–139 гг. до н.э., а девятая, зеленая, дарована Фердинандом Католиком городу за помощь в битве при Торо в 1476 г. Иногда флаг изображают с белыми полосками (см. второе фото), но так неправильно, это означает, что флаг просто не разрезан. У флага даже есть собственное название — Seña Bermeja. #spain#rome#lusitanes

Addis Standard

@addisstandardeng · Post #21818 · 24.03.2026 г., 12:47

#Ethiopia’s #Bishoftu mega airport secures fresh financing momentum Ethiopia’s landmark aviation project near Bishoftu is gaining fresh international traction following a recent series of high level engagements in #Rome, where #Italian officials signalled a readiness to support key components of the financing for what is being positioned as #Africa’s most ambitious airport scheme. This development comes as the project — already under construction — moves from planning into execution mode, and as Addis Abeba’s existing aviation capacity nears its limits. Announced during formal discussions in mid March 2026 between Ethiopia’s Finance Minister Ahmed Shide and Italy’s Minister of Economy and Finance Giancarlo Giorgetti, Italy’s pledge does not yet amount to a fully executed funding commitment. Rather, it frames Italian support as being part of a multi layered financing structure under negotiation, with......... https://aircargoweek.com/ethiopias-bishoftu-mega-airport-secures-fresh-financing-momentum/

В Риме каждую неделю проходят митинги в поддержку Грузии. Несколько фотографий с последних двух. ❗В это воскресенье piazza Santi Apostoli в 15:00❗ состоится манифестация в поддержку демократии в Грузии. Приходите! #FreeGeorgia#rome#democracy

Нет пропаганде Кремля в Италии! Нет военной пропаганде, замаскированной под культуру: протест против презентации книги Владимира Мединского в русском доме в Риме. 9 октября в русском доме в Риме состоится презентация книги «Мифы и контрмифы: СССР во Второй мировой войне» Владимира Мединского, советника Владимира Путина, президента Российского военно-исторического общества, члена партии «Единая Россия», бывшего министра культуры и одного из главных сторонников исторического ревизионизма, всегда служившего путинскому режиму. Книга была опубликована на итальянском языке Sandro Teti Editore. Мы считаем, что публикация и продвижение в Италии этого текста, не соответствующего никаким международным академическим стандартам, является частью стратегии Кремля по дезинформации о прошлом, призванной оправдать свои нынешние преступления в глазах западной общественности и продвигать антидемократическую, империалистическую и ксенофобскую программу. Мединский публично заявил, что исторические факты менее важны, чем политическая лояльность к своей стране. Он поддержал масштабное вторжение на Украину в 2022 г., как предполагаемое продолжение исторической борьбы с нацизмом и даже выступил в качестве переговорщика от имени Путина. Он активно поддерживал цензуру произведений и художников, критикующих правительство, и инициировал музейные проекты, отрицающие преступления Сталина и преуменьшающие значение советских репрессий. В этой книге отрицаются или преуменьшаются общепризнанные исторические факты, включая потери СССР во Второй мировой войне, которые представляются как «не более значительные», чем потери Германии; совместную ответственность Гитлера и Сталина во вторжении в Польшу в 1939 году (пакт Молотова-Риббентропа); и сотрудничество советских граждан с нацизмом, которое называют мифом Геббельса. Всё это направлено на оправдание милитаристской внешней политики Путина и укрепление мифа об «освобождающей» России, постоянно осаждаемой Западом. Российский режим подавляет любые инакомыслящие посредством насилия и запугивания, заполняя тюрьмы политическими заключёнными. Культура и исследования не должны быть инструментом войны и репрессий. 9 октября, 17:30-19:00 Рим, via Nicola de Cesarini (largo Argentina) Присоединяйтесь! #russicontrolaguerra#stoppropahandarussa#rome#roma

ART IN SPORT

@BarykinaLiubov · Post #1775 · 21.04.2025 г., 14:53

Никогда не забуду эти моменты, которые мне подарила судьба I'll never forget those moments that destiny gave me. Pope Francis 🙏🤝❤️‍🔥🖼️ 06.10.2021 года состоялась Аудиенция Папы Римского Франциска с вручением моей Картины «Символ Православия» И подписанием скатерти Мира 🕊️🕊️🕊️ Сегодня 21.04.2025 Папы Франциска Не стало…… 🥲🥲🥲 #PopeFrancis #Audience #Vatican #Rome #LiubovBarykina #PeoplesDiplomacy

12
ПретходнаСтраница 1 од 2Следна