Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
✈️ Мировой рынок авиаперевозок в марте 2025 года продемонстрировал рост на 4,4% по сравнению с аналогичным периодом прошлого года, что стало рекордным значением для марта. В сфере международных грузовых перевозок рост составил 5,5%, согласно данным Международной ассоциации воздушного транспорта (IATA). Грузооборот вырос на 3,3% по сравнению с февралем текущего года.
📦 Вместимость воздушных судов для грузоотправителей выросла на 4,3% по сравнению с мартом 2024 года, а в международном сегменте этот показатель увеличился на 6,1%. Коэффициент загрузки мощностей возрос на 0,1 процентных пункта и достиг 47,5%.
📊 Крупнейший торговый маршрут «Азия – Северная Америка» увеличился на 7,3%, а маршрут «Европа – Азия», занимающий второе место по объему грузовых авиаперевозок, показал рост на 8,3% на протяжении 25 месяцев подряд. Однако на маршрутах «Европа – Ближний Восток» и «Африка – Азия» наблюдается снижение объемов перевозок на 7,5% и 40,2% соответственно.
📈 Аналитики IATA связывают рост с увеличением объемов промышленного производства на 3,2% и торговли на 2,9%, а также с девятым месяцем снижения цен на авиатопливо, что сэкономило средства авиакомпаний. Однако неопределенности в условиях торговли, такие как новый запрет на беспошлинный импорт из Китая, могут повлиять на рынок.
____
#ТисЛоджистик🦏
#Авиаперевозки
#Грузоперевозки
#IATA
🛩️ IATA внедряет искусственный интеллект в грузовые авиаперевозки
📌IATA запускает три инициативы по использованию ИИ в грузовой авиации. Главная новинка – AI Subject Matter Expert: мобильное приложение, которое позволяет сотрудникам быстро находить информацию в технических публикациях IATA, задавая вопросы простым языком. Ответы приходят за секунды
🔵Также создаётся Air Cargo AI Excellence Hub – площадка для сотрудничества авиакомпаний, обработчиков грузов, экспедиторов и регуляторов по вопросам интеграции ИИ. Третья инициатива – совместный проект по использованию ИИ-агентов для взаимодействия авиакомпаний с разными IT-системами в реальном времени при бронировании и обработке сбоев
🔵«Потенциал ИИ для цифровой трансформации грузовой авиации огромен», – отметил глава грузового направления IATA Брендан Салливан
⬅️Как думаете, ускорит ли ИИ обработку грузов в российских аэропортах?
Лёгкое небо
#aviation#news#IATA#карго
Новости туризма Латинской Америки: подготовка к Мундиалю и главные события отрасли
В Латинской Америке продолжается активное развитие туристического сектора. Регион готовится принять миллионы путешественников, в том числе болельщиков Чемпионата мира 2026, и активно продвигает свои природные и деловые маршруты.
🇲🇽Мексика и Тулум готовятся к Чемпионату мира 2026
Мексика ускоряет визовый процесс к Мундиалю — будет внедрена система электронных виз с использованием биометрических данных и цифровых сертификатов. Это позволит туристам получать разрешение на въезд быстрее и проще, без необходимости подавать документы в консульства.
Город Тулум выбран как одно из ключевых направлений туристической кампании Мексики к Чемпионату мира. Власти планируют сделать Тулум витриной мексиканского туризма в период Мундиаля, привлекая болельщиков и путешественников со всего мира.
🔸Туризм в Латинской Америке продолжает рост
По данным IATA (Международная ассоциация воздушного транспорта), международные рейсы в мае 2025 года достигли рекордной загрузки — 83,2%. Особенно активен рост в Азии и Латинской Америке.
🇩🇴Доминиканская Республика и Пуэрто-Плата: круизный бум
В июле Пуэрто-Плата примет рекордные 36 круизов, а по всей Доминиканской Республике ожидается 39 заходов лайнеров за месяц. Это укрепляет позиции страны как одного из ведущих круизных направлений Карибов.
🇧🇷Бразилия делает ставку на экотуризм и национальные парки
Бразилия усиливает продвижение своих природных достопримечательностей на международном уровне. В рамках FITUR (одна из крупнейших международных туристических выставок в мире, международная туристическая ярмарка, ежегодно проводится в Мадриде) страна представила стратегии развития экотуризма, афротуризма и инклюзивных маршрутов, акцентируя внимание на устойчивости и социальной интеграции.
🇵🇪Выставка Peru Travel Mart 2025: успешный итог и региональные туры
В Перу успешно завершилась крупнейшая туристическая выставка — Peru Travel Mart 2025. Мероприятие собрало более 180 участников из 27 стран, включая туроператоров, авиакомпании и отельные сети, и включало B2B-встречи, презентации и региональные туры в Куско и Арекипу.
Официальное открытие провела президент Дина Болуарте, подчеркнув важность туризма для национальной экономики. PTM активно продвигает Перу как уникальное культурное, гастрономическое и природное направление.
🇺🇾Уругвай и Бразилия развивают устойчивый туризм
Министерство туризма Уругвая подписало соглашение с Ассоциацией университетов (AUGM) о совместной работе в области научных исследований, кадровой подготовки и продвижения устойчивого туризма.
🔹ICCA Latin America & Caribbean: конференция о будущем туризма
Конференция ICCA Latin America & Caribbean 2025 объединила лидеров туротрасли для обсуждения развития делового туризма в регионе. В центре внимания — новые форматы событий, цифровизация, устойчивость и укрепление позиций Латинской Америки на мировом MICE-рынке.
Вторая сессия собрала представителей туристических офисов, конгресс-бюро, отелей, организаторов мероприятий и авиаотрасли со всей Латинской Америки.
Особое внимание было уделено региональной кооперации, чтобы Латинская Америка укрепила свои позиции в международной конкуренции за проведение крупных мероприятий.
🇨🇱Зимние каникулы: рост внутреннего туризма в Чили
Чили готовится к сезону зимних каникул — ожидается рост путешествий внутри страны до 24%, а международный туризм может вырасти на 20%, особенно за счёт интереса к бразильским курортам.
#Мексика#Мундиаль2026#Туризм#IATA#ДоминиканскаяРеспублика#Перу#Уругвай#Бразилия#FITUR#ICCA#Чили#ЛатинскаяАмерика
👉Всегда свежие новости о странах Латинской Америки!