TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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

Резултати

Пронајдени 5 слични објави

Пребарај: #u18

当前筛选 #u18清除筛选
OlympicUz

@OlympicUz · Post #43256 · 08.03.2026 г., 09:10

🏒Yosh xokkeychilarimiz jahon chempionatida III divizion gʻolibiga aylanishdi Xokkey boʻyicha Oʻzbekiston U18 terma jamoasi Gonkongda tashkil etilgan jahon chempionati III divizion “A” guruhi gʻolibi boʻldi. Musobaqada magʻlubiyatsiz ishtirok etgan yigitlarimiz soʻnggi turda Isroil ustidan 6:3 hisobida gʻalaba qozonishdi. Ushbu muvaffaqiyat jamoamizga kelasi yil II divizionning “B” guruhida ishtirok etish imkoniyatini taqdim etadi. — 🏒Наши юные хоккеисты стали победителями III дивизиона ЧМ Сборная Узбекистана по хоккею U18 стала победителем группы «A» III дивизиона чемпионата мира, который проходил в Гонконге. Наши хоккеисты провели мировое первенство без поражений и в заключительном туре одержали победу над сборной Израиля со счётом 6:3. Этот успех позволит нашей команде в следующем году выступить в группе «B» II дивизиона чемпионата мира. #Xokkey#U18 👉@OlympicUz olympic.uz I YouTube I Instagram I

Hashtags

OlympicUz

@OlympicUz · Post #43244 · 06.03.2026 г., 11:35

🏒Xokkeychilarimiz bu gal Bolgariyani magʻlub etishdi Xokkey boʻyicha Oʻzbekiston yoshlar terma jamoasi (U18) jahon chempionatida navbatdagi gʻalabani rasmiylashtirdi. III divizionning “A” guruhida qatnashayotgan yigitlarimiz bu gal bolgariyalik raqiblarini 5:3 hisobida dogʻda qoldirishdi. Ushbu muvaffaqiyatdan keyin jamoamiz 11 ochko bilan birinchi oʻrinni mustahkam egallab turibdi. — 🏒На этот раз наши хоккеисты победили Болгарию Сборная Узбекистана по хоккею (U18) одержала очередную победу на чемпионате мира. В матче группы «A» III дивизиона наши хоккеисты уверенно обыграли сборную Болгарии со счётом 5:3. Благодаря этой победе команда Узбекистана с 11 очками продолжает уверенно занимать первое место в таблице. #Xokkey#U18 👉@OlympicUz olympic.uz I YouTube I Instagram I

Hashtags

OlympicUz

@OlympicUz · Post #43239 · 05.03.2026 г., 14:40

🏒Yosh xokkeychilarimiz jahon chempionatida uchinchi gʻalabaga erishishdi Gonkongda davom etayotgan xokkey boʻyicha U18 jahon chempionatining III divizion “A” guruhi bellashuvlarida Oʻzbekiston yoshlar terma jamoasi navbatdagi gʻalabani qoʻlga kiritdi. Jamoamiz bugun musobaqadagi asosiy raqiblardan biri Turkiya bilan kuch sinashdi. Qoʻshimcha boʻlimgacha davom etgan oʻyinda hamyurtlarimiz 7:6 hisobida zafar quchib, peshqadamlikni yanada mustahkamlashdi. — 🏒Юные хоккеисты Узбекистана одержали третью победу на чемпионате мира Юношеская сборная Узбекистана по хоккею (U18) одержала очередную победу на проходящем в Гонконге чемпионате мира в III дивизионе группы «A». Сегодня наша команда встретилась с одним из главных соперников на ЧМ — сборной Турции. Матч продлился до дополнительного времени. В итоге узбекские хоккеисты вырвали победу со счётом 7:6, ещё больше укрепив своё лидерство. #Xokkey#U18 👉@OlympicUz olympic.uz I YouTube I Instagram I

Hashtags

OlympicUz

@OlympicUz · Post #43224 · 03.03.2026 г., 12:05

Yosh xokkeychilarimiz jahon chempionatini yirik hisobdagi gʻalabalar bilan boshlashdi Gonkongda xokkey boʻyicha U18 yosh toifasidagi jahon chempionati III divizion “A” guruhidan oʻrin olgan bellashuvlar oʻtkazilmoqda. Unda qatnashayotgan Oʻzbekiston yoshlar terma jamoasi 2 ta yirik gʻalabaga erishdi. Dastlab mezbonlarni 6:2 hisobida magʻlub etgan yigitlarimiz 2-turda Yangi Zelandiyani 13:2 hisobida dogʻda qoldirishdi. Hozirda hamyurtlarimiz 6 ochko bilan peshqadamlik qilishmoqda. — Юные хоккеисты Узбекистана успешно стартовали на чемпионате мира В Гонконге проходит чемпионат мира U18 по хоккею (III дивизион, группа «А»). В соревнованиях принимает участие сборная Узбекистана, которая уже одержала 2 крупные победы. В стартовом матче наши хоккеисты обыграли хозяев со счётом 6:2. Во втором туре команда разгромила сборную Новой Зеландии — 13:2. После двух встреч сборная Узбекистана набрала 6 очков и занимает первое место в группе. #Xokkey#U18 👉@OlympicUz olympic.uz I YouTube I Instagram I

Hashtags

#U18国际 网址:#U18 点com 家人们!所有赌友注意了!PC 加拿大28 这个平台纯粹是诈骗!充值速度快得像火箭,秒到账!但我刚赢点钱想提现,账号就被直接拉黑注销,连解释都没有!聊天记录、转账记录都在这里,一共被黑了 19 万多 U,大家千万避雷! 紧急提醒所有赌友!曝光 PC加拿大 黑心平台!充值非常顺利,秒进账!提现时立马翻脸,账号直接没了!我亲身踩坑,血的教训!证据充足,大家千万别再上当! 刷到这条的赌友千万别划走!PC 加拿大 28 充值时催都不用催,秒到账!提现就被拉黑注销,毫无解释!铁证如山,大家互相转告,别再有人被骗!u18 鲨鱼群已有多人被黑 19 万多 U,截图、真相都在这里,还大家一个绿色安全的 pc平台! DISS:没办法,正规的你们不来玩,就贪图小便宜上大当