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

Резултати

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

Пребарај: #russian

当前筛选 #russian清除筛选
Великий Иран( Iran &Russia)

@russiantravelty · Post #1239 · 24.05.2025 г., 06:11

Есть вещи, ради которых стоит жить, а есть люди, которых следует забыть. И чем раньше ты это сделаешь, тем быстрее вспомнишь ради чего ты живешь. С добрым утром ❤️ چیزهایی هستند که ارزش زندگی کردن را دارند و افرادی هستند که باید فراموش شوند. و هر چه زودتر این کار را بکنید ، زودتر به یاد خواهید آورد که برای چه چیزی زندگی می کنید. #Russian travel # @pashak2093

Hashtags

Великий Иран( Iran &Russia)

@russiantravelty · Post #1559 · 04.09.2025 г., 12:50

Иранский музыкальный инструмент " неи анбан"( Bagpipes). Играет под названием " БАНДАРИ" Этот инструмент появился в " БАБОЛСКИЙ ВРЕМЕНА, 2000 лет до наши эри " в Персидский империи. #Russian travel #Иран&Россия #Иран #музыка# ایران# Russian travel @pashak2093

Великий Иран( Iran &Russia)

@russiantravelty · Post #1225 · 21.05.2025 г., 11:05

Что бы оказаться в настоящем Зазеркалье, не надо попадать в сказку. Достаточно посетить Шах-черах - "Зеркальную мечеть" в иранском городе Шираз. Построено это чудо было в XIV веке. Шах-черах - усыпальница Ахмеда и Мухаммеда (братьев восьмого имама шиитов). Снаружи она выглядит как обычная мечеть: с детализированными изразцами, окаймленными золотом минаретами и голубым куполом. Но изнутри Шах-Черах от пола до потолка отделана миллионами сверкающих зеркал. Представьте, что вы оказались внутри самого роскошного в мире калейдоскопа - и поймете, что ощущает человек, оказавшись внутри мечети. Ощущение непередаваемое. Никакая камера, никакие мои слова не передают красоту (во всех смыслах) и изящество этого чуда. Это надо видеть, это надо почувствовать. دید از یک افسانه برای اینکه خود را در یک Through the Looking Glass واقعی بیابید، لازم نیست در نهایت در یک افسانه قرار بگیرید. برای بازدید کافی است شاه چراغ - «مسجد آیینه» در شهر شیراز. این معجزه در قرن چهاردهم ساخته شده است. شاه چراغ آرامگاه احمد و محمد (برادران امام هشتم شیعیان) است. از بیرون شبیه یک مسجد معمولی است، با کاشی‌های دقیق، مناره‌هایی با لبه‌های طلا و گنبدی آبی. اما از داخل، شاهچراخ از کف تا سقف با میلیون ها آینه درخشان تزئین شده است. تصور کنید که خود را در مجلل ترین کالیدوسکوپ جهان می بینید - و متوجه خواهید شد که وقتی یک فرد در داخل مسجد است چه احساسی دارد. حسی که قابل وصف نیست هیچ دوربین و هیچ کلمه ای از من نمی تواند زیبایی (به تمام معنا) و لطف این معجزه را منتقل کند. این را باید دید، این را باید حس کرد #Russian travel #Иран&Россия #Иран #Шираз# ایران، شیراز @pashak2093

Великий Иран( Iran &Russia)

@russiantravelty · Post #1164 · 09.05.2025 г., 06:08

🙌🇷🇺🙌День Победы — это символ несгибаемого духа и величия народа! ⭐️Это день памяти о героизме миллионов, кто плечом к плечу сражался за свободу и мир — от Балтики до Тянь-Шаня, от Кавказа до Сибири. ⭐️Друзья, поздравляю вас с этим великим праздником — праздником силы, стойкости и бесконечной благодарности поколению победителей! #Russian travel #Иран&Россия #Россия #ПОБЕДА# روسیه، روز پیروزی بر فاشیسم @pashak2093

123•••910
ПретходнаСтраница 1 од 10Следна