Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
17 июля 2025 года в Пекине Зампред ОРКД Сергей Шаронов принял участие в Бизнес-форуме ШОС
17 июля 2025 года в г.Пекин был проведен Бизнес-форум ШОС, организованный Китайским комитетом содействия развития международной торговли (CCPIT).
В мероприятии, посвященном теме "Продвижение "Шанхайского духа", деловые круги в действии", обсуждались вопросы взаимодействия в области
«зеленой» трансформации энергетики и повышения устойчивости производственно-сбытовых цепочек стран участниц ШОС.
На церемонии открытия Форума со вступительным словом выступил Гао Юньлун, Заместитель председателя Всекитайского комитета Народного политического консультационного совета Китая (ВК НПКСК)
С речью по тематике Форума также выступили:
- Ермекбаев Н.Б., Генеральный секретарь Шанхайской организации сотрудничества;
- Цивилев С.Е., Министр энергетики Российской Федерации;
- Катырин С.Н., Президент Торгово-промышленной палаты Российской Федерации;
- Сариев Т.А., Президент Торгово-промышленной палаты Кыргызской Республики
- Си Гохуа, Председатель китайской международной трастовой и инвестиционной корпорации CITIC;
- Лю Цзюнь, Председатель правления Торгово-промышленного банка Китая ICBC
В Бизнес-форуме ШОС приняли участие порядка 400 представителей правительственных органов и деловых кругов из России, Китая и других стран.
#ШОС
#РоссияКитай
#CCPIT
#ОРКД
Зампред ОРКД посетил китайский Комитет по содействию развития международной торговли (CCPIT) провинции Ляонин
18 августа в городе Шэньян заместитель Председателя Общества российско-китайской дружбы, руководитель комиссии по туризму, Сергей Шаронов посетил провинциальное отделение китайского Комитета по развитию содействия международной торговли (CCPIT) провинции Ляонин и провел переговоры с Председателем комитета г-ном Пан Баого.
В рамках состоявшейся встречи, стороны обменялись предложениями по развитию сотрудничества в области туризма, выставочного сервиса и услуг, а также договорились взаимодействовать по ряду инвестиционных проектов в провинции Ляонин.
Сергей Шаронов поблагодарил Председателя провинциального Комитета Пан Баого за теплый прием делегации и предложил укреплять двусторонние отношения между провинциальным Комитетом CCPIT и региональными отделениями ОРКД по широкому кругу вопросов.
Пан Баого поблагодарил делегацию за визит и пообещал содействовать развитию взаимодействия и практического сотрудничества между сторонами. Он также отметил, что в городе Биробиджан (ЕАО) уже действует представительство Комитета CCPIT провинции Ляонин, которое может способствовать региональным отделениям ОРКД в установлении отношений с организациями провинции, а также оказывать им помощь в реализации совместных с проектов на территории Ляонин.
#РоссияКитай
#ОРКД
#CCPIT
#Туризм
#Liaoning
На Форуме по сотрудничеству в области промышленности и торговли между Китаем и Северо-Восточной Азией рассказали о многостороннем сотрудничестве с участием РСПП
23 – 27 сентября 2021 г. в смешанном формате состоялся Форум по сотрудничеству в области промышленности и торговли между Китаем и Северо-Восточной Азией в рамках ЭКСПО «Китай – Северо-Восточная Азия». Его основной темой стало «Укрепление многостороннего сотрудничества в Северо-Восточной Азии и содействие региональному экономическому процветанию».
В числе спикеров Форума:
Кэ Ляндун, вице-президент, Китайский совет по содействию международной торговле (CCPIT);
О. Амартувшин, президент Монгольской национальной Торгово-промышленной палаты;
Хун Чжанпо, вице-президент, China Railway Construction Co. Ltd;
Такасима Рюсуке, главный представитель Пекинского офиса Японской внешнеторговой организации (JETRO);
Ван Вэнжун, вице-президент, China Railway Construction Co. Ltd;
Пак Мин-ёнг, главный представитель Пекинского офиса Корейской торговой ассоциации.
РСПП был представлен управляющим директором Управления международного многостороннего сотрудничества и интеграции РСПП Сергеем Михневичем. В своем выступлении он подчеркнул, что для российского бизнеса и евразийских компаний развитие взаимовыгодного и всестороннего экономического сотрудничества с Китаем и партнерами из Северо-Восточной Азии является одним из главных международных приоритетов.
Сергей Михневич отметил, что в число наиболее перспективных направлений для дальнейшего углубления сотрудничества входят торговля и инвестиции, промышленность и машиностроение, транспорт и логистика, сельское хозяйство и рыболовство, услуги и цифровизация. Многие российские компании уже реализовали большой объем проектов в этих сферах. Кроме того, он выразил мнение, что необходимо объединять усилия и максимально использовать потенциал всех существующих двусторонних и многосторонних институтов международного сотрудничества.
«Следует наращивать взаимодействие в рамках Ассоциации бизнеса Северо-Восточной Азии (АБ СВА), учрежденной РСПП, ККСМТ, Монгольской и Корейской торгово-промышленными палатами. В этом году РСПП председательствует в Ассоциации и нацелен на достижение конкретных результатов сотрудничества. Мы будем и далее активно способствовать налаживанию информационного обмена между компаниями стран региона, а также содействовать практической реализации перспективных проектов, » – сказал Сергей Михневич.
Доступ к полному тексту - на странице Управления международного многостороннего сотрудничества и интеграции Российского союза промышленников и предпринимателей (РСПП): https://рспп.рф/events/news/na-forume-po-sotrudnichestvu-v-oblasti-promyshlennosti-i-torgovli-mezhdu-kitaem-i-severo-vostochnoy--616d2af6510eb/
#РСПП#Россия#КНР#АБСВА#ККСМТ#RSPP#PRC#Russia#NEABA#CCPIT