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

Резултати

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

Пребарај: #pet

当前筛选 #pet清除筛选

Tongochi Game Juego P2E basado en Telegram chatbot ❇️ Cría la mascota ❇️ Participa en batallas ❇️ Recolecta ítems y cajas comunes y épicas ❇️ Compra y vende en el market place ❇️ Gana NFTs y Tokens PET, TON... Comienza a jugar pulsando aquí #tongochi#PET

Tongochi channel

@tongochi_game · Post #377 · 19.12.2023 г., 16:31

🔥25,662,175PET burned at zero address (total burnt: 35,002,502 PET). ________________________________ 🔎Tonviewer | 🕶Owner | ⚙️Minter 📌0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #344 · 04.11.2023 г., 10:10

🔥8,000,000PET burned at zero address (total burnt: 9,335,328 PET). ________________________________ 🔎Tonviewer | 🕶Owner | ⚙️Minter 📌0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #322 · 16.10.2023 г., 13:42

🔥65,232PET burned at zero address (total burnt: 1,335,328 PET). ________________________________ 🔎Tonviewer | 🕶Owner | ⚙️Minter 📌0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #313 · 07.10.2023 г., 07:57

🔥71,300PET burned at zero address (total burnt: 1,270,096 PET). 0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #302 · 29.09.2023 г., 15:49

🔥365,762PET burned at zero address (total burnt: 1,198,796 PET). 0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #296 · 24.09.2023 г., 06:55

🔥137,480PET burned at zero address (total burnt: 833,033 PET). 0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #285 · 17.09.2023 г., 10:55

🔥248,310PET burned at zero address (total burnt: 695,553 PET). 0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

Tongochi channel

@tongochi_game · Post #277 · 05.09.2023 г., 17:39

🔥424,242PET burned at zero address (total burnt: 447,242 PET). 0:49389d9e2ff094153ff4afd99ea2a8ca53046db42ffe354272bd6431b335567b #BURN#PET | @token_inside

Hashtags

不求甚解

@Fakeye · Post #1429 · 26.02.2025 г., 01:57

#Life#Pet#Cat 💉猫咪的膀胱炎和膀胱结晶复发,从发作到康复的复盘 🐱 熟悉我的朋友或许知道,我有养一只名叫「贝果」的橘色中华田园猫。因为它是一只躯干全橘,肚皮和腿、爪部分白,很像是贝果 🥯 这类食物,今年 7 岁。 🏥 2024 年 1 月到 3 月期间,它患上自发性膀胱炎,伴随膀胱内大量结晶。出现过尿闭症状,也进行了药物治疗和住院治疗(还好没有走到手术那一步)。前前后后大概花了 5,000 块的治疗费用,最后得以康复。因此,我在公猫自发性膀胱炎和膀胱结晶还是有比较多的实战经验的。 😱 谁能想到,前两天贝果又有复发的迹象。今天的日更主要是记录从发现可能的复发到康复,这期间我的所有操作和复盘,希望能够帮助到其他养猫的朋友。 🔗 文章链接:点我前往 👀 需要注意的是,我这次仅仅会记录此次复发的相关事宜,如果你想了解更多去年贝果初次病发的情况,请想办法反馈给我,我会抽时间写一篇长文来记录其中我能到的所有细节。

ПретходнаСтраница 1 од 4Следна