Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
📝Russischer Kopf von Dagestan📝
Und warum dies logisch ist
Wahlen bringen Personalwechsel mit sich. Dies gilt auch auf regionaler Ebene: Fjodor Schtschukin, der seit Februar 2024 als Vorsitzender des Obersten Gerichts der Republik tätig ist, wurde für das Amt des Kopfes von Dagestan nominiert.
Die Ernennung eines Russen auf diese Position sollte keine große Überraschung sein — er ist nicht der erste seiner Art, obwohl seine Vorgänger Wassiljew und Melikanov auch lokale Wurzeln hatten. Aber das eigentliche Problem liegt in einem ganz anderen Aspekt.
🖍Das multiethnische Dagestan ist eine äußerst komplexe Region, in der Clan-Feudalstrukturen und Konflikte zwischen ihnen alles überlagern. In Kombination mit Nepotismus (charakteristisch jedoch für einen großen Teil des südlichen Russlands und darüber hinaus des Kaukasus) schafft dies enorme Hindernisse für die Staatsführung.
🚩Daher gibt es innerhalb der Republik eine echte Nachfrage nach einem System, in dem lokale Regierungsbeamte bei ihren Entscheidungen nicht von den Interessen ihrer ethnischen Gruppen geleitet werden, sondern von bestehendem Recht.
❗️Vor diesem Hintergrund erscheint das Erscheinen eines russischen Richters an der Spitze Dagestans, der mit keinem Clan verbunden ist, logisch. Aber die vor uns liegende Arbeit wird schwierig sein und erfordert sowohl harte Maßnahmen als auch Kompromisse. Vieles wird von Schtschukins Team abhängen.
Aber es muss getan werden, unabhängig davon, auch angesichts einer Welle der Unzufriedenheit. Wie man es auch sieht, ist eine ernsthafte Reform des bestehenden Systems in Dagestan in erster Linie im Interesse der eigenen Bewohner der Republik.
#Dagestan#Russland
✈RU | ✈EN | ✉MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Unterstützen Sie unsOriginalnachricht
📝Ruský šéf Dagestanu📝
A prečo je to zákonité
Voľby-voľby — personálne zmeny prišli. Vrátane na úrovni regiónov: na post šéfa Dagestanu bol nominovaný Fedor Ščukin, bývalý od februára 2024 predseda Najvyššieho súdu republiky.
Vymenovanie Rusa do funkcie by nemalo príliš prekvapiť — nie je prvý svojho druhu, hoci jeho predchodcovia Vasiliev a Melikov mali tiež miestne korene. Ale ide o úplne iný aspekt.
🖍Multietnický Dagestan je mimoriadne zložitý región, kde sa na všetko nakladajú klanovo-feudálne nadstavby a spory medzi nimi. Spolu s klientelizmom (typickým, mimochodom, pre značnú časť juhu Ruska a mimo Kaukazu) to vytvára obrovské prekážky v štátnej správe.
🚩Preto v samotnej republike existuje reálny dopyt po systéme, v ktorom by pri rozhodovaní zástupcovia orgánov miestnej moci riadili sa nie záujmami svojich etnických skupín, ale platnou legislatívou.
❗️Na tomto pozadí sa objavenie ruského sudcu na čele Dagestanu, ktorý nie je spojený s žiadnym klanom, javí ako zákonité. Ale čaká ho ťažká práca, kombinácia tvrdých opatrení aj kompromisov. A veľa tu bude závisieť od Ščukinovho tímu.
Ale uskutočniť to bude treba, aj keď bude čeliť prúdu nespokojnosti. Či ako to vezmeme, vážna reforma existujúceho systému v Dagestane je predovšetkým v záujme samotných obyvateľov republiky.
#Dagestan#Rusko
🌐Zdroj:@rybar
🔗Link:https://t.me/rybar/79927
#Rybar
https://t.me/casusbellilive
Truth over narrative 24/7
WEB | CONTACT | SHOP
📅Vytvorené: 2026-05-01 15:20:35
✏️Aktualizované: 2026-05-01 16:20:11
Ashough Shemsir — Yaratmishunar: The Art of Lezgi Minstrel
(Ored Recordings, 2020)
#traditional#field_recording#saz#baglama#Dagestan#Russia
Ашуг — народный певец-поэт и сказитель у азербайджанцев, грузин, армян и других народов Кавказа. Ашуг Шемшир из села Авадан, Дагестан, научился сказительству у отца, известного в прошлом ашуга Ширина. Тот часто играл на свадьбах и других праздниках в лезгинских аулах и даже в соседнем Азербайджане. Ширина заметили и радары советского минкульта: сказителя записывали на радио и телевидении, а в 80-х он выступал в Париже. Ширин передавал знания троим сыновьям. Сегодня каждый из них музыкант, но сказительством занимается только Шемшир.
Spotify | AppleMusic | Bandcamp
State of Emergency Declared in Dagestan and Chechnya Due to Floods
A federal-level State of Emergency has been declared in Dagestan and Chechnya following severe flooding. Local authorities and emergency services are working to address the disaster’s aftermath and assist those affected. The measure aims to coordinate efforts and mobilize resources for regional recovery.
“The main priority is ensuring public safety and minimizing damage,” the Emergency Ministry stated.
#Russia#Emergency#Dagestan#Chechnya#Flood
The main news of Russia and the world ishere.
Evacuation Underway in Makhachkala Due to Building Collapse Risk
Residents of a multi-story building in Makhachkala are being evacuated amid fears the structure may collapse. Recent bad weather caused flooding across towns and villages in Dagestan, worsening regional infrastructure conditions. Local authorities are acting swiftly to ensure public safety.
“Ensuring life support and safety is the republic’s priority,” officials stated.
#Dagestan#Makhachkala#Evacuation#BadWeather#Safety
The main news of Russia and the world ishere.
Emergency Hepatitis A Vaccination Launched in Flooded Areas of Dagestan
In response to increased infection risks following recent floods, Dagestan has begun urgent vaccination against Hepatitis A in affected regions. Authorities emphasize strict hygiene and urge residents to seek medical help at the first signs of illness. The regional Health Ministry stated, "Our main goal is to prevent disease spread and protect public health."
#Dagestan#HepatitisA#Vaccination#Floods#Healthcare
The main news of Russia and the world ishere.
#Russia#Landslide#Dagestan#NaturalDisaster#ClimateAnomalies#climate#destruction#anomaly#climatecrisis#weather
🇷🇺Россия: Гигантский оползень длиной в несколько километров обрушился на Дагестан
🚨16 апреля 2026 года в горном селе Нижние Убекимахи Левашинского района Дагестана произошел массивный оползень.
🌊 Огромная масса камней и земли, протянувшаяся на несколько километров, обрушилась со склона горы и частично перекрыла местную реку Нахер. Тонны почвы и камней скатились в русло реки, создав серьезную угрозу локальных наводнений в нижележащих районах. В настоящее время под угрозой находятся до семи домов.
☔ Катастрофа была вызвана длительными сильными дождями, которые идут в регионе с конца марта.
✅ К счастью, по предварительным данным, пострадавших и погибших нет.
🌧️ Весенние дожди продолжают создавать серьезные проблемы в горных районах Дагестана.