Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Эксклюзив от Уралвагонзавода: уникальное видео испытаний Т-90С в джунглях
Концерн «Уралвагонзавод» впервые публикует редчайшие видеокадры ходовых испытаний танка Т-90С, которые проходили в самых экстремальных и суровых условиях на планете – в джунглях Малайзии.
Эта съемка сохранилась на старой видеокассете одного из инженеров-испытателей, который участвовал в тех событиях. Видео было обнаружено совершенно случайно, когда готовили документальный видеофильм к 25-летию индийского контракта.
🎥 Что происходит на этих кадрах?
Лето 2000-го года, температура за бортом +40С, влажность – как в бане, грязь – по самую башню. Т-90С гоняет там, где, казалось бы, танкам не место: тропические джунгли, болота, малопроходимая местность.
Перед этим Т-90 намотал круги по индийской пустыне Тар, а потом практически сразу совершил 1300-километровый марш-бросок через джунгли Малайзии. Лучшее доказательство того, что российский танк – это не "паркетная" машина для военных парадов, а техника способная воевать там, где другая броня просто не пройдет.
В 2000-х годах Т-90С преодолел все сложнейшие испытания в трех различных климатических зонах – в Малайзии (влажные тропики и болота), в Индии (сочетание пустыни, высокогорья и муссонов) и в Саудовской Аравии (пустыня с её абразивным песком и жарой за 50 градусов).
Никто из конкурентов не прошел этот цикл полностью, а Т-90С подтвердил способность работать в полном климатическим экстриме - даже при +55°C.
🫡🫡🫡 в MAX
#КонцернУВЗ#Т90
Эксклюзив от Уралвагонзавода: уникальное видео испытаний Т-90С в джунглях
Концерн «Уралвагонзавод» впервые публикует редчайшие видеокадры ходовых испытаний танка Т-90С, которые проходили в самых экстремальных и суровых условиях на планете – в джунглях Малайзии.
Эта съемка сохранилась на старой видеокассете одного из инженеров-испытателей, который участвовал в тех событиях. Видео было обнаружено совершенно случайно, когда готовили документальный видеофильм к 25-летию индийского контракта.
🎥 Что происходит на этих кадрах?
Лето 2000-го года, температура за бортом +40С, влажность – как в бане, грязь – по самую башню. Т-90С гоняет там, где, казалось бы, танкам не место: тропические джунгли, болота, малопроходимая местность.
Перед этим Т-90 намотал круги по индийской пустыне Тар, а потом практически сразу совершил 1300-километровый марш-бросок через джунгли Малайзии. Лучшее доказательство того, что российский танк – это не "паркетная" машина для военных парадов, а техника способная воевать там, где другая броня просто не пройдет.
В 2000-х годах Т-90С преодолел все сложнейшие испытания в трех различных климатических зонах – в Малайзии (влажные тропики и болота), в Индии (сочетание пустыни, высокогорья и муссонов) и в Саудовской Аравии (пустыня с её абразивным песком и жарой за 50 градусов).
Никто из конкурентов не прошел этот цикл полностью, а Т-90С подтвердил способность работать в полном климатическим экстриме - даже при +55°C.
🫡🫡🫡 в MAX
#КонцернУВЗ#Т90
#Challenger2#Т90#украина
Вот такая вундервафля прикатила на Украину. Гражданский министр обороны Украины Алексей резников презентовал три британских танка Challenger 2 весом 62,5 тонны каждый. Машина, в целом по ТТХ, неплохая и по ряду характеристик будет лучше, чем наши Т-72БМ.
Но самая главная проблема танка — это его вес. В украинском черноземе, если завязнет (а он точно завязнет), то вытаскивать его украинским экипажам будет нечем под градом снарядов с российской стороны. Даже если он докатится до линии фронта, то первый же удар в гусеницу (которые не защищены) также приведет к потере техники.
При этом непонятно как эти танки будут пересекать водные преграды. Мосты через реки строились в советские годы на Украине и были рассчитаны на массу до 60 тонн, потому что в СССР не было танков тяжелее, а значит ВСУ придется наводить понтонные переправы советского образца, которые также не рассчитаны не массу в 62,5 тонны.
Похожие супертяжелые танки создавала и фашистская Германия в последние годы своего существования. Знаменитый «Mouse» весил 100 тонн, и создатель Фердинанд Порше рассчитывал, что танки будут выполнять роль стреляющих крепостей, зарывшись в грунт. Но испытания показали, что и из грунта потом было невозможно вытащить такие вундервафли. Скорость и маневренность на поле боя оказались важнее толстой брони.
Российская армия сейчас стягивает на фронт «летающие» танки Т-90М «Прорыв», а также массово поставляет противотанковые системы «Контент» и ПТКМ-1Р.
Ждем первое пробитие.
🚕🚕🚕🎄Новогодний эшелон «Прорывов»
Финальная партия танков Т-90М отправилась в российскую армию. Гособоронзаказ-2025 выполнен.
– Объёмы Гособоронзаказа растут, но мы делаем все возможное, чтобы исполнить обязательства перед страной. В эти танки мы вложили и частицу нашей души. Пусть наша броня служит надежной защитой русским воинам, хранит их жизни, – отметил исполнительный директор Уралвагонзавода Владимир Рощупкин.
В танки вложили не только душу, но и небольшие сувениры, памятные альбомы с рисунками и пожеланиями детей сотрудников Концерна УВЗ (Ростех) и тактические аптечки, предоставленные Общероссийским народным фронтом в рамках проекта «Всё для Победы».
Танки Т-90М «Прорыв» продолжают постоянно совершенствоваться. На Уралвагонзаводе ведется непрерывная работа по повышению их защитных, эксплуатационных и технических характеристик на основе актуального опыта боевого применения.
#КонцернУВЗ#танки#Т90
«Это вообще лучший танк в мире. Машина думает за тебя. Когда я освоил её, понял, что на ней работает намного лучше», – так говорят танкисты разведывательно-штурмовой бригады имени Невского добровольческого корпуса про танки Т-90М «Прорыв».
«Прорывы» недавно поступили на вооружение танкового подразделения. Об этом сообщили представители соединения. Сейчас экипажи «обкатывают» танки, готовя их к боевому применению.
«Танки мы назвали в честь наших погибших танкистов: Кос и Чегем. Их позывные нанесены на борта машин», - рассказал командир танкового батальона Тор.
Видео: РИА Новости
#КонцернУВЗ#танки#Т90
Русский танковый прорыв в индийской пустыне
Для многих танк — даже больше, чем дом, на самом деле. Многие считают, что у танка есть душа... И наша задача как разработчиков, безусловно, обеспечить для ребят вот ту веру, ту надежду в боевую машину, которая позволит им уверенно решать боевые задачи на поле боя и не сомневаться, что задача будет выполнена, что боевая машина их не подведёт, – отметил представитель предприятия-разработчика Концерна "Уралвагонзавод".
Об уникальных подробностях индийского контракта на танки Т-90С и воспоминания его участников – в эксклюзивном специальном репортаже телеканала «Россия-24»🎥
#КонцернУВЗ#Т90#УВЗ90
25 лет исполняется индийскому контракту на Т-90!
15 февраля 2001 года был подписан контракт на поставку российских танков Т-90С в Индию. Это событие стало поворотной точкой в истории Уралвагонзавода (входит #КонцернУВЗ Ростеха) и всего танкостроения.
В конце 90-х годов, когда российская «оборонка» находилась в тяжелейшем состоянии, Уралвагонзавод и Уральское конструкторское бюро транспортного машиностроения приняли вызов.
Индия предъявила жесткие требования. Для их исполнения в кратчайшие сроки была создана новая сварная башня, новый двигатель, тепловизоры и множество других узлов и агрегатов.
Машины для испытаний были созданы всего за несколько месяцев.
17 мая 1999 года три опытных образца Т-90С были отправлены в пустыню Тар, где они преодолели более 2000 км в тяжелейших условиях: от адской жары до сокрушающих ливней. Танки и люди с честью выдержали запредельные нагрузки.
Результаты испытаний впечатлили индийскую сторону: бригадный генерал Д. Сингх назвал Т-90С«вторым после ядерного оружия фактором сдерживания».
Итоговый документ, подписанный Рособоронэкспортом и Министерством обороны Индии в феврале 2001 года, предусматривал поставку готовых танков и машинокомплектов для сборки в Индии. От первого показа танка на выставке в Абу-Даби в 1997-м до контракта прошло всего 4 года!
Индийский контракт не только помог Уралвагонзаводу сохранить производство боевых машин, но и стал импульсом для возрождения всей танковой отрасли России.
#Т90#УВЗ90
25 лет исполняется индийскому контракту на Т-90!
15 февраля 2001 года был подписан контракт на поставку российских танков Т-90С в Индию. Это событие стало поворотной точкой в истории Уралвагонзавода (входит в #КонцернУВЗ Ростеха) и всего танкостроения.
В конце 90-х годов, когда российская «оборонка» находилась в тяжелейшем состоянии, Уралвагонзавод и Уральское конструкторское бюро транспортного машиностроения приняли вызов.
Индия предъявила жесткие требования. Для их исполнения в кратчайшие сроки была создана новая сварная башня, новый двигатель, тепловизоры и множество других узлов и агрегатов.
Машины для испытаний были созданы всего за несколько месяцев.
17 мая 1999 года три опытных образца Т-90С были отправлены в пустыню Тар, где они преодолели более 2000 км в тяжелейших условиях: от адской жары до сокрушающих ливней. Танки и люди с честью выдержали запредельные нагрузки.
Результаты испытаний впечатлили индийскую сторону: бригадный генерал Д. Сингх назвал Т-90С «вторым после ядерного оружия фактором сдерживания».
Итоговый документ, подписанный Рособоронэкспортом и Министерством обороны Индии в феврале 2001 года, предусматривал поставку готовых танков и машинокомплектов для сборки в Индии. От первого показа танка на выставке в Абу-Даби в 1997-м до контракта прошло всего 4 года!
Индийский контракт не только помог Уралвагонзаводу сохранить производство боевых машин, но и стал импульсом для возрождения всей танковой отрасли России.
#Т90#УВЗ90
Эксклюзивно про Т-90МС: с выставочного подиума – в бой
Новейший Т-90МС, который в феврале этого года был звездой международной выставки#IDEX в Абу-Даби, уже выполняет боевые задачи в составе российских танковых подразделений.
Машина, которую мы впервые показали за рубежом, была доработана с учётом богатейшего опыта СВО. И в наши войска была отправлена практически в той же комплектации, что и демонстрировалась на выставке в ОАЭ. Изменение коснулось цвета: с «выставочного» песочного камуфляжа танк перекрасили в стандартный армейский зеленый.
Ко Дню танкиста публикуем эксклюзивное видео всего этого пути!
В этом ролике – вся история: от транспортировки танка на выставку, его работы на стенде Рособоронэкспорта и до возвращения домой, перекраски и отправки героям-танкистам.
#КонцернУВЗ#Т90
Готовы сотрудничать с Малайзией по новому Т-90МС
Накануне Международной оборонной выставки DSA 2026 в Куала-Лумпуре концерн «Уралвагонзавод» совместно с «Рособоронэкспортом» заявил о готовности предложить Малайзии передовой танк Т-90МС с максимально выгодными условиями. Об этом сообщило информагентство ТАСС.
В рамках стратегии развития сотрудничества со странами Юго-Восточной Азии российская сторона готова рассмотреть широкий спектр кооперационных схем. Потенциальным партнерам могут быть предложены варианты от поэтапной сборки техники до ее полного сервисного сопровождения. Такой подход уже успешно реализован в проектах с Индией и другими странами.
🔸 Автономность и надежность
Т-90МС – это машина, спроектированная как «автономная единица». В #Ростех подчеркнули, что российские танки способны длительное время действовать в отрыве от баз снабжения, сохраняя высокую подвижность и огневую мощь.
Простые решения в конструкции также обеспечивают высокую ремонтопригодность в полевых условиях. Замена сложных агрегатов, вплоть до двигателя и трансмиссии, может производиться силами экипажа или штатных подразделений без использования тяжелых кранов и заводских цехов.
🔸 Проверка джунглями
Предложение базируется не только на тактико-технических характеристиках, но и на реальном опыте. 2000-м году Т-90С успешно прошел интенсивные испытания в сложных климатических условиях Малайзии, полностью подтвердив заложенную в него концепцию «танка для любых театров военных действий».
Источник: ТАСС
🫡🫡🫡 в MAX
#КонцернУВЗ#Т90#танки