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

Резултати

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

Пребарај: #utair

当前筛选 #utair清除筛选
Подорожник

@podorozhnik_travel · Post #2296 · 18.02.2025 г., 06:20

Перелет Санкт-Петербург - Сургут, авиакомпания UTair, Boeing 737-800. Три с половиной часа пролетели в полусне. Обслуживание фактически отсутствует. Ииии... Аэропорт в Сургуте, переполненный с утра, с трудом вмещающий в себя путешественников. И рейс в Белоярский через несколько часов. #UTair

Hashtags

Подорожник

@podorozhnik_travel · Post #1612 · 04.12.2024 г., 11:45

Boeing 737-800 авиакомпании UTair. Ничего нового, перелет в формате лоукост (т.е. практически без обслуживания). Вылет в 00-20, практически сразу провал в сон... #UTair

Hashtags

Подорожник

@podorozhnik_travel · Post #1321 · 09.11.2024 г., 05:29

Итак. Авиакомпания ЮТэйр. Рейс Москва (Внуково) - Дубай (Аль-Мактум). Опытный Boeing 767, широкофюзеляжный самолет на 249 пассажиров. Да-да, обычно все мы летаем ютами в Сургут, Нягань и Белоярский, но Дубай тоже сойдёт ))) А в Дубае будет транзит и пересадка на следующую авиакомпанию... #UTair

Hashtags

Лёгкое небо

@legkoenebo · Post #4478 · 08.01.2026 г., 15:04

✈️ 7700 📌B762 рейса UT716 «Дубай-Москва» подал сигнал бедствия 🔵Борт сжигал топливо и сделал более 10 зон ожидания 🔵За его полётом наблюдало около 50 тысяч человек, сделав аварийный рейс самым просматриваемым в мире ⬅️На данный момент самолёт приземлился в аэропорту вылета Лёгкое небо #aviation#news#UTair

Подорожник

@podorozhnik_travel · Post #2306 · 18.02.2025 г., 06:52

Вдогонку за рассветом летим в Белоярский! Турбовинтовой ATR 72-500, ловко жужжа пропеллерами, летит из Сургута за солнцем и теплом. Минус 20. И лучший город Земли. #Белоярский#ХМАО #UTair

Люди и техника работают на пределе возможностей. Подобного по масштабу поиска в Красноярском крае ещё не было. Семью Усольцевых ищут. Каждый день — новая попытка, новый маршрут. Заканчиваются ресурсы, устают люди... Добровольцев отряда «ЛизаАлерт» держит надежда и двигают вперёд ваши неравнодушие и помощь. Для авиации погода нелётная, но БПЛА могут подняться. Сегодня с добровольцем отряда из Москвы доставлены на место поиска три беспилотника с запасом аккумуляторов. БПЛА, надёжные, устойчивые к экстремальным условиям, уже обследуют территорию. На земле продолжают отработку задач пешие группы и проходимая техника; работают кинологи ГУФСИН, сотрудники полиции и Следственного комитета, курсанты ВИИ СФУ. Привлечены спелеологи и альпинисты. Надёжный тыл добровольцам обеспечивает Красноярское отделение Российского Красного Креста. Плечом к плечу с нами многие дни территорию обследуют добровольцы ПСГ «Сибирь», объединения «Азимут», КРОО СПР «Поиск пропавших детей им. О. Василишиной». Протяжённость треков за все дни поиска — более 4000 км. Мы благодарны каждому, кто помог: присоединился к поиску, передал оборудование, доставил к месту поисково-спасательных работ людей и технику. Благодаря авиакомпании UTair на поиск были доставлены 3 БВС с дополнительными аккумуляторами. А программа лояльности #UtairStatus позволяет нам доставлять специалистов на место поиска, как произошло и в этот раз. Большое спасибо авиакомпании #UTair за проект #ПоделисьМилями с #ЛизаАлерт. Огромное спасибо всем, кто делится милями с добровольцами. Если вы хотите помочь или обладаете информацией о местонахождении пропавших, пожалуйста, позвоните на горячую линию отряда «ЛизаАлерт»: 8-800-700-54-52 (бесплатно и круглосуточно) и 112. #отчетопоиске#Усольцевы#ТудаГдеВасЖдут

Подорожник

@podorozhnik_travel · Post #3043 · 04.05.2025 г., 14:36

Дорогие друзья! Решил немного привести в порядок структуру канала и упорядочить записи по поездкам. И помещу этот пост в "закреп" - на верхнюю часть экрана. Теперь будет удобнее смотреть посты по поездкам в разные страны и регионы. Россия🇷🇺 #Адыгея #Майкоп #Хаджох #Гузерипль #Водопады_Руфабго #Башкортостан #Уфа #Туймазы #Волгоградская_область #Волгоград #Урюпинск #Фролово #Бубновка Воронежская_область #Воронеж #Карелия #Петрозаводск #Сортавала #Рускеала #Олонец #Коми #Печора #Усинская #Ухта #Краснодарский_край #Краснодар #Сочи #Ленинградская_область #Приозерск #Москва #Новгородская_область #Великий_Новгород #Пермский_край #Пермь #Сарс #Кунгур #Чайковский #Псковская_область #Псков #Печоры #Изборск #Порхов #Тверская_область #Тверь #Ржев #Торжок #Тюменская_область #Тюмень #Удмуртия #Ижевск #Воткинск #Лудорвай #Кукуи #ХМАО #Белоярский #Верхнеказымский #Азербайджан🇦🇿 #Белоруссия🇧🇾 #Бельгия🇧🇪 #Вьетнам🇻🇳 #Гамбия🇬🇲 #Гонконг🇭🇰 #Иордания🇯🇴 #Киргизия🇰🇬 #Мавритания🇲🇷 #Макао🇲🇴 #Марокко🇲🇦 #Мьянма🇲🇲 #Намибия🇳🇦 #СаудовскаяАравия🇸🇦 #Сенегал🇸🇳 #Таджикистан🇹🇯 #Тайвань🇹🇼 #РЖД🚂 #Аэрофлот #S7 #UTair #Северсталь #QatarAirways #Etihad_Airways #AZAL #Еда_в_самолете #Еда_в_поезде #Бизнес_залы🛋