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

Резултати

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

Пребарај: #goodtoknow

当前筛选 #goodtoknow清除筛选
JDMax Channel

@jdmaxchannel · Post #5884 · 03.05.2026 г., 08:06

В рилсах завирусился легчайший способ делать идеальные фото. Чтобы максимально показать шикарный фон, нужно просто отойти на 10 шагов назад и сфотографировать с зумом 2х, 5х или 8х. Так в кадре будете не только вы, но вся красота вокруг. JDMax#GoodToKnow

Hashtags

JDMax Channel

@jdmaxchannel · Post #4629 · 20.10.2025 г., 14:44

В рилсах нашли полезную штуку: гамак для ног в самолёт Гамак поможет пережить перелёты любой длины. Стоит такой ₽429 на маркетплейсах. JDMax#GoodToKnow

Hashtags

JDMax Channel

@jdmaxchannel · Post #4511 · 07.10.2025 г., 15:26

5 приложений для СДВГшников Появилась подборка, помогающая держать концентрацию и не теряться в задачах. Избавляемся от залипаний и фокусируемся. JDMax#GoodToKnow

Hashtags

JDMax Channel

@jdmaxchannel · Post #4489 · 03.10.2025 г., 08:01

Фильтр для воды меняет вкус алкоголя — лайфхак действительно работает. Графин нейтрализует горечь и другие неприятные нотки в спиртных напитках благодаря активированному углю. Авторы видео профильтровали водку и шнапс, а затем выпили по рюмке напитков: резкий спиртовой привкус полностью пропал. JDMax#GoodToKnow

Hashtags

JDMax Channel

@jdmaxchannel · Post #4129 · 12.08.2025 г., 13:05

Информация для тех, кто планируют отдых в Турции — в Яндекс Картах теперь есть цены на весь транспорт Стамбула, от метро до паромов и фуникулеров. При построении маршрута приложение рассчитывает стоимость всей поездки с учетом пересадок, а также показывает цену проезда отдельно по каждому виду транспорта. JDMax#GoodToKnow

Hashtags

Jizzax volontyorlar maktabi ️

@Volontyorlar_maktabi_Jizzax · Post #565 · 30.05.2022 г., 05:31

#goodToKnow Volontyorlik = ko‘ngillilik, nafaqat jamiyatga, balki volontyorning o‘ziga ham foyda keltiradi 🖐❤ ➕ Volontyorlar=ko‘ngillilar o‘zlariga qiziq bo‘lgan ishlariga kuch va bilim sarflash orqali ma‘nan rivojlanadilar, o‘zlarida "soft skills" ko‘nikmalarini shakllantiradilar. Volontyorlar duo, tabassum, baxtli chehralar, rahmat so‘zlarini bildirgan ko‘zlaridan kuch olishadi. ➕ Volontyorlik faoliyatidan jamiyat oladigan foyda ham aniq - dunyo bo‘ylab bir qator tashkilotlar moliyaviy qiyinchiliklarni kechirgan, shu o‘rinda, aholining himoyaga muhtoj qatlami alohida e‘tiborga sazovor bir paytda, volontyorlar o‘zlarini kerakli his qiladigan payt kelgan, volontyorlik faoliyati jamoatchilik e‘tiborini bugungi kun muammolariga qaratadi, ayrim hollarda esa bu muammolarni yechimiga aylanadilar. #volontyorlarOilasi#uva #bizBirgamiz 🖐❤️🖐💚🖐💙🖐❤️🖐💚🖐💙🖐❤ Volontyorlar uchun saralangan yangiliklar ⬇️ Telegram | Instagram | Facebook | web

FlyArystan

@FlyArystan_official · Post #49 · 13.08.2019 г., 13:25

No show дегеніміз не?ℹ️ Сатылымда билеттер жоқ болып, ұшақ бортында бос орын болғанын байқадыңыз ба? Ондай қашан болуы мүмкін? ✅Жолаушылар әуетасымалдаушыға хабар бермей, рейске келмеген жағдайда ✅Жолаушылар рейске кешігіп келген кезде ❗️Бұл кезде билет күйіп, билет құны қайтарылмайды. Егер жолаушы ұшып шығу туралы шешімін өзгертсе, онда тариф шартарына сай ұшуға кем дегенде 2 сағат қалғанда брондауды өзгертіп немесе ақша қайтарымын орындай алады *брондауды өзгерту немесе қайтарым жасау үшін, билетті сатып алған жерге хабарласу керек • Что такое no show? ℹ️ Замечали ли вы, что иногда авиабилетов на определённый рейс не бывает, но во время полёта некоторые места все-таки пустуют? Такое возможно когда... ✅Пассажиры не пришли на рейс, не уведомив авиаперевозчика об этом ✅Опоздали на рейс ❗️В этих случаях билеты пассажиров сгорают, а их стоимость не возвращается. В случае, если пассажир меняет своё решение о вылете, то он может внести изменения в бронирование или осуществить возврат по условиям тарифа не позднее, чем за 2 часа до вылета *в случае перебронирования или возврата билета обращаться по месту приобретения • What is no show? ℹ️ Have you ever noticed that sometimes for a certain flight the tickets are totally sold out, but during the flight some seats are still empty? It's possible when... ✅Passengers did not show up for a flight without notifying the carrier about it ✅Passengers were late for a flight ❗️In these cases, passenger’s ticket will be void and it's cost will not be refunded. Therefore please be noted that if you need to make changes in your ticket you can do it no later than 2 hours before the departure according to the rules of the used fare type. *In case of a rebooking or refund, please contact the point of sale where you have purchased it • #flyarystan#lowfares#lowcostairline#travel#сапар#саяxат#путешествие#билет#самолеты#ұшақтар#aircraft#білгенабзал#полезнознать#goodtoknow