Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Туризм как двигатель интеграции: итоги участия Оргкомитета Экспедиции в TITF-2025
Оргкомитет Экспедиции "Путешествие в Сердце Евразии" принял участие в Ташкентской международной туристической ярмарке.
В рамках сессии «География сотрудничества: возможности межрегионального туризма» заместитель генерального директора АНО «Международный центр региональной интеграции» Улан Дубанаев представил итоги международной экспедиции «Путешествие в Сердце Евразии», прошедшей летом в России, Кыргызстане, Казахстане, Узбекистане и Таджикистане.
🌍Единый туристический продукт Центральной Азии
Идея сквозного маршрута, которую начали детально прорабатывать в рамках деловой программы Экспедиции, обрела в Ташкенте новое звучание. Сегодня это уже не просто отраслевая инициатива, а ключевой интеграционный проект, актуальность которого подтверждается на высшем уровне.
В основе идеи— курс на глубокую координацию. Региону выгодна модель общего туристического продукта, в которой каждый город становится уникальным центром притяжения со своей специализацией. Это не только усиливает бренд Центральной Азии на мировой арене, но и дает прямой экономический эффект: туристы остаются дольше, а инфраструктура получает новые инвестиции за счет синергии национальных экономик.
Состоялась важная встреча с заместителем хокима Наманганской области Ботиржоном Кодирхановичем Нуриддиновым. Стороны продолжили диалог по инициативам, заложенным еще во время пребывания Экспедиции в Ферганской долине.
🇹🇯 На полях форума
Улан Дубанаев посетил национальный стенд Таджикистана, где в рамках деятельности Российско-Таджикского Делового Совета обсудил с коллегами актуальные вопросы продвижения туристического потенциала республики.
#Туризм#ЦентральнаяАзия#TITF2025
😃TXTY‑2025: tayyorgarlik boshlandi! Yangiliklarni bizning ijtimoiy tarmoqlarda kuzating. #TXTY2025
😃ТМТЯ‑2025: начинаем подготовку! Следите за обновлениями на наших соц. сетях. #ТМТЯ2025
😃TITF-2025: preparations begin! Follow updates on our social media. #TITF2025
TITF|Telegram|Instagram|Facebook
#TXTY2025#ТМТЯ2025#TITF2025
😃“Ipak yo‘lida turizm” –Toshkent xalqaro turizm yarmarkasini (TXTY 2025) autsorsing asosida tashkil etish va o‘tkazish uchun qayta tanlov e’lon qilinadi
⏳Arizalarni qabul qilishning oxirgi muddati: 2025-yil 22-may, soat 16:00.
✅Batafsil
😃Объявляется конкурс по организации и проведению на аутсорсинговой основе Ташкентской международной туристической ярмарки «Туризм на Шелковом пути» - ТМТЯ-2025
⏳Крайний срок подачи заявок: 22 мая 2025 года, 16:00.
✅Подробнее
TITF|Telegram|Instagram|Facebook
#TXTY2025#ТМТЯ2025#TITF2025
😃“Ipak yo‘lida turizm” – TXTY-2025 Toshkent xalqaro turizm yarmarkasini autsorsing asosida tashkil etish va o‘tkazish uchun tanlov e’lon qilinadi
✅Batafsil
😃Объявляется конкурс по организации и проведению на аутсорсинговой основе Ташкентской международной туристической ярмарки «Туризм на Шелковом пути» - ТМТЯ-2025
✅Подробнее
TITF|Telegram|Instagram|Facebook
#TXTY2025#ТМТЯ2025#TITF2025
😃“Ipak yo‘lida turizm” – TXTY-2025 Toshkent xalqaro turizm yarmarkasini autsorsing asosida tashkil etish va o‘tkazish uchun tanlov e’lon qilinadi
✅Batafsil
😃Объявляется конкурс по организации и проведению на аутсорсинговой основе Ташкентской международной туристической ярмарки «Туризм на Шелковом пути» - ТМТЯ-2025
✅Подробнее
TITF|Telegram|Instagram|Facebook
#txty2025#titf2025#тмтя2025
⚡️"Ipak yo‘lida turizm” 30-Toshkent Xalqaro Turizm Yarmarkasida Buxoro viloyati o’zining turistik paviloni bilan munosib ishtirok etdi!
🏆 Бухарская область достойно приняла участие на 30-й Ташкентской международной туристической ярмарке "Туризм на шелковом пути"со своим туристическим павильоном!
🏅Bukhara region took part with distinction in the 30th Tashkent International Tourism Fair “Tourism on the Silk Road” with its own tourism pavilion!
Telegram | Facebook | Instagram
#txty2025#titf2025#тмтя2025
✅"Ipak yo‘lida turizm” 30-Toshkent Xalqaro Turizm Yarmarkasi doirasida B2B uchrashuvlar
Yarmarka ko‘tarinki ruhda davom etmoqda va unda Buxorcha an’ana va qadriyatlarimiz faol tarzda namoyish etilmoqda.
Mahalliy hamda xorijiy hamkorlar bilan yangi-yangi g‘oya va loyihalar qizg‘in muhokama qilinib, kelishuvlarga erishilmoqda.
Buxoro viloyati Turizm boshqarmasi tomonidan ham Buxoroning turizm salohiyati faol targ‘ibot qilinmoqda.
Jumladan, Tojikiston, Turkmaniston, Belarus Respublikasi hamda AQSHdagi turistik kompaniyalar bilan muzokaralar olib borildi.
Unda, Buxoroda so'nggi yillarda tashkil etilgan turistik marshrutlar va yangi infratuzilmalarning qo'shni va xorijiy davlatlar turkompaniyalari tur paketlariga kiritilishi bo'yicha kelishuvlarga erishildi.
Telegram | Facebook | Instagram
#txty2025#titf2025#тмтя2025
🇺🇿🇹🇷“Ipak yo‘lida turizm” 30-Toshkent xalqaro turistik yarmarkasi doirasida Buxoro shahri va Turkiyaning Trabzon shahri o‘rtasida o‘rnatilgan birodarlik aloqalari yanada mustahkamlanmoqda.
Endilikda, Buxoroning turizm salohiyati va boy madaniy merosi nafaqat Buxoro pavilyonida, balki joriy yilda birodarlik aloqalari o‘rnatilgan Trabzon pavilyonida ham keng namoyish etilmoqda.
Telegram | Facebook | Instagram
#txty2025#titf2025#тмтя2025
“Ipak yo‘lida turizm” Toshkent xalqaro turizm yarmarkasi doirasida munosib ishtirok etayotgan Buxoro paviloni blogerlar nigohida!
Telegram | Facebook | Instagram
#txty2025#titf2025#тмтя2025
#Buxoro
“TITF-2025”:🤝Xalqaro hamkorlikni kengaytirish Buxoro viloyatiga sayyohlar oqimini oshirish uchun zamin yaratadi!
Buxoro pavilonida yarmarka ko‘tarinki ruhda davom etmoqda va unda Buxorcha an’ana hamda qadriyatlarimiz faol tarzda namoyish etilishi bilan bir qatorda Buxoro viloyati turizm boshqarmasi tomonidan ham Buxoroning turizm salohiyati faol targ‘ib qilinmoqda.
Jumladan, 20 dan ortiq TMTY doirasida tashkil etilgan Buxorolik turizm soha tadbirkorlik subyektlari (turoperatorlar, mehmonxona xo'jaliklari, gid-ekskursovodlar) tomonidan 2 mingga yaqin B2B uchrashuvlar va muzokaralar o'tkazilib, 2 tomonlama sayyohlik almashinuvi bo'yicha manfaatli kelishuvlarga erishildi.
Mahalliy hamda xorijiy hamkorlar bilan yangidan yangi g‘oya va loyihalar qizg‘in muhokama qilindi.
Xususan, Buxoroda so'nngi yillarda tashkil etilgan turistik marshrutlar va yangi turizm infratuzilmalarning qo'shni va xorijiy davlatlar tur kompaniyalari tur paketlariga kiritilishi, kelgusida to‘g‘ridan to‘g‘ri turlarni tashkil etish kabi masalalar yuzasidan kelishib olindi.
Telegram | Facebook | Instagram
#LIVE
#txty2025#titf2025#тмтя2025
Toshkent xalqaro turizm yarmarkasi doirasida o‘tkazilayotgan ''Souvenirs and Craft Fair Uzbekistan" hunarmandchilik ko‘rgazmasida Buxoro viloyatidan kandakorlik, zargarlik, zardo‘zlik, qorakul teri, kashtachilik, milliy liboslar, pichoqchilik, miniatyura san’ati, kulolchilik, patdo‘zlik yunalishlari bo‘yicha 10dan ortiq hunarmand ishtirok etdi.
__
На выставке ''Souvenirs and Craft Fair Uzbekistan" которая проходит в рамках Ташкентской международной туристической ярмарки участвуют более 10 ремесленников из Бухары, в направлении резьбы, ювелирного дела, золотшвейных изделий, каракуля, вышивки, национальных костюмов, изготовления ножей, искусства миниатюры и гончарного дела.
Telegram | Facebook | Instagram