Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Prezident Shavkat Mirziyoyev Toshkent shahrining Mirzo Ulugʻbek tumani hokimligi faoliyati bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с деятельностью хокимията Мирзо-Улугбекского района города Ташкента.
#Mirziyoyev#tanishuv#MirzoUlugbek#hokimlik
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Toshkent shahrining Mirzo Ulugʻbek tumani hokimligi faoliyati bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с деятельностью хокимията Мирзо-Улугбекского района города Ташкента.
#Mirziyoyev#tanishuv#MirzoUlugbek#hokimlik
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Toshkent shahrining Mirzo Ulugʻbek tumani hokimligi faoliyati bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с деятельностью хокимията Мирзо-Улугбекского района города Ташкента.
#Mirziyoyev#tanishuv#MirzoUlugbek#hokimlik
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Toshkent shahrining Mirzo Ulugʻbek tumani hokimligi faoliyati bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с деятельностью хокимията Мирзо-Улугбекского района города Ташкента.
#Mirziyoyev#tanishuv#MirzoUlugbek#hokimlik
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Toshkent shahrining Mirzo Ulugʻbek tumani hokimligi faoliyati bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с деятельностью хокимията Мирзо-Улугбекского района города Ташкента.
#Mirziyoyev#tanishuv#MirzoUlugbek#hokimlik
Prezident.uz|Facebook|Instagram|YouTube|X
#Fuqarolar_qabuli
#Chilonzor
#Hokimlik
#Muloqot
#AholiMurojaati
Chilonzor tumani hokimligida tuman hokimi o‘rinbosarlari tomonidan tasdiqlangan jadval asosida fuqarolar qabullari muntazam ravishda o‘tkazib kelinmoqda.
Xususan, bugun tuman hokimi o‘rinbosari K.Hamrayev hamda Xalq deputatlari tuman kengashi kotibiyati mudiri L.Murotova ishtirokida navbatdagi fuqarolar qabuli bo‘lib o‘tdi.
Qabul davomida tumandoshlarimiz tomonidan asosan kommunal soha va uy-joy masalalariga oid qator murojaatlar kelib tushdi. Har bir murojaat mas’ullar tomonidan atroflicha o‘rganilib, muammolarni bartaraf etish bo‘yicha aniq choralar belgilandi.
Aholi muammolari bilan ishlash va ularni hal etish jarayoni tuman hokimligining doimiy nazoratida bo‘lib qoladi.
🔵 Сhilonzor_tumani_hokimligi
🚀Kattaqo‘rg‘on tumani kelajagi sizning g‘oyangizda!
Sizda dunyoni (yoki hech bo‘lmaganda tumanimizni) o‘zgartira oladigan g‘oya bormi? Uni qog‘ozda qolib ketishiga yo‘l qo‘ymang!
Kattaqo‘rg‘on tuman hokimligi hamda tuman yoshlar ishlari bo'limi tumandagi eng iqtidorli, izlanuvchan va kreativ yoshlarni bir jamoaga jamlamoqda. Biz nafaqat g‘oyalarni, balki kelajak bunyodkorlarini qidiryapmiz! 🎯
✨Bu sizga nima beradi?
E’tirof: Loyihang tuman rahbariyati va soha mutaxassislari e’tiboriga tushadi.
Qo‘llab-quvvatlash: Eng yaxshi startaplar tuman miqyosida rivojlantirilishi uchun yo‘l ochiladi.
Networking: O‘zing kabi g‘oyasi bor tengdoshlaring bilan kuchli muhitga kirasiz.
Innovatsiya: Kattaqo‘rg‘onning raqamli kelajagini aynan siz bilan quramiz!
💡Kimlar ishtirok etishi mumkin?
AKT va raqamli texnologiyalar;
Qishloq xo‘jaligida innovatsiyalar;
Ta’lim va ijtimoiy loyihalar;
Xizmat ko‘rsatish sohasidagi yangicha yondashuvlar.
Sizning oddiygina ko‘ringan g‘oyangiz ertaga ulkan loyihaga aylanishi mumkin. Imkoniyat eshik qoqmoqda, uni o‘tkazib yubormang!
G‘oliblar uchun maxsus sovg‘alar!
Eng kuchli, kreativ va hayotiy deb topilgan 3 ta eng zo‘r startap loyiha egalari tuman hokimligi hamda tuman Yoshlar ishlar bo'limi tomonidan qimmatbaho sovg‘alar va maxsus mukofotlar bilan taqdirlanadilar! 🏅
🔗Darhol ro‘yxatdan o‘ting va safimizga qo‘shiling: [Bu yerdan ro'yxatdan o'ting ]
⏰Vaqt chegaralangan, hoziroq harakat qiling!
Qandaydir savolingiz bo'lsa Tuman hokimining raqamli texnologiyalar va sun'iy intellektni rivojlantirish bo'yicha maslahatchi S.Toshtemirovga murojaat qilishingiz mumkin.
+998770039707
📲Tumanimizdagi barcha yangiliklar bilan rasmiy kanalimiz orqali tanishib boring!
#Kattaqorgon#StartUp#Innovatsiya#YoshlarKelajagi#Hokimlik#RaqamliTuman
___
KATTAQO'RG'ON TUMANI HOKIMLIGI AXBOROT XIZMATI
🌐Web sayt😎Telegram
#YashirinIqtisodiyot#TahlilYig‘ilishi #Hokimlik#Soliq#Prokuratura
Chilonzor tumanida yashirin iqtisodiyotga qarshi kurash masalalari muhokama qilindi
Chilonzor tumani hokimligida tuman hokimi Saidqahhor Xolxo‘jayev boshchiligida yig‘ilish o‘tkazildi.
Unda tuman prokurori, tuman Soliq inspeksiyasi rahbari hamda tegishli mas’ul mutasaddilar ishtirok etib, tumanda yashirin iqtisodiyotning oldini olish borasida olib borilayotgan ishlar tahlil qilindi.
Yig‘ilish davomida mazkur yo‘nalishda mavjud muammolar ko‘rib chiqilib, ularni bartaraf etish, tadbirkorlik faoliyatini qonuniy yuritishni ta’minlash hamda yashirin iqtisodiyot holatlarining oldini olish yuzasidan kelgusida amalga oshiriladigan aniq chora-tadbirlar rejasi belgilab olindi.
🔵https://t.me/chilonzor_tuman_hokimligi
#Chilonzor
#Hokimlik
#MahkamaYig‘ilishi
#Iqtisodiyot
#Reja
#IjroNazorati
📌 CHILONZOR TUMANI HOKIMLIGIDA BIRINCHI CHORAK YAKUNLARI VA ISTIQBOLDAGI REJALAR MUHOKAMA ETILDI
Chilonzor tumani hokimligida tuman hokimi Saidqahhor Xolxo‘jayev rahbarligida kengaytirilgan mahkama yig‘ilishi bo‘lib o‘tdi. Unda tuman hokimi o‘rinbosarlari, boshqarma va bo‘lim boshliqlari hamda mutasaddi rahbarlar ishtirok etishdi.
📈 Yig‘ilish kun tartibidan o‘rin olgan asosiy masalalar:
🔹 Joriy yilning birinchi choragi yakunlari: O‘tgan davr mobaynida tuman ijtimoiy-iqtisodiy rivojlanish ko‘rsatkichlari, rejalashtirilgan loyihalarning ijrosi va yo‘l qo‘yilgan kamchiliklar tanqidiy tahlil qilindi;
🔹 Ikkinchi chorak rejalari: Kelgusi uch oylikda amalga oshirilishi lozim bo‘lgan ustuvor vazifalar, yangi investitsiya loyihalari va aholi bandligini ta’minlash choralari belgilab olindi.
Yig‘ilish yakunida tuman hokimi tomonidan har bir yo‘nalish bo‘yicha mas’ullarga aniq topshiriqlar berilib, ijro intizomini qat’iy nazoratga olish zarurligi ta’kidlandi.
🔵@Chilonzor_tumani_hokimligi
#O‘quvSeminari
#MahallaЕttiligi
#IchkiIshlarVazirligi
#Hokimlik
#MFY
#Profilaktika
#YoshlarSiyosati
#XotinQizlar
#HokimYordamchisi
Chilonzor tumanida “Mahalla yettiligi” uchun o‘quv seminari o‘tkazildi
Ichki ishlar vazirligi hamda Chilonzor tuman hokimligi hamkorligida “Mahalla yettiligi” a’zolari uchun maxsus o‘quv mashg‘ulotlari tashkil etilmoqda.
Mazkur o‘quv dasturi 12 moduldan iborat bo‘lib, har hafta belgilangan jadval asosida o‘tkazilishi rejalashtirilgan. Unda mahalla fuqarolar yig‘ini raisi, profilaktika inspektori, yoshlar yetakchisi, xotin-qizlar faoli va hokim yordamchilari ishtirok etmoqda.
Bugungi o‘quv-seminari Chilonzor tumanidagi 217-sonli umumta’lim maktabida tashkil etildi. Mashg‘ulotlar davomida ishtirokchilarga o‘z yo‘nalishlari bo‘yicha zarur bilim va ko‘nikmalar berildi.
🔵@Chilonzor_tuman_hokimligi