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

Резултати

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

Пребарај: #synonyms

当前筛选 #synonyms清除筛选
Toward Discovering English

@TowardDiscoveringEnglish · Post #564 · 09.09.2021 г., 12:00

Synonyms : 1. Bizarre = strange 2. Fanciful = unrealistic 3. Feat = difficult achievement 4. Impair = damage 5. Deter = prevent 6. Fracture = break 7. Indigenous = native 8. Altitude = height 9. Keen = intelligent 10. Dominate = control #synonyms

Hashtags

Toward Discovering English

@TowardDiscoveringEnglish · Post #563 · 09.09.2021 г., 11:59

Synonyms: 1 Backing = support (n) 2 Devastating = disastrous (adj) 3 Regarding = concerning = about (prep) 4 Compel = force (v) 5 Relinquish = give up = stop (v) 6 Tolerate = put up with (v) 7 Rejuvenate = refresh (v) 8 Dense = tight (adj) 9 Appall = horrify (v) 10 Allot = give (v) ▪︎Try to give examples by using these synonyms in full sentences with an appropriate approach. Example: We cannot put up with your behaviour, so you are going to be expelled from our university. #synonyms

Hashtags

Learn RCRussian🤍💙❤️

@learnrcrussian · Post #4371 · 19.03.2025 г., 07:43

👋Доброе утро, товарищи! 🔻To answer the most anticipated question now: Когда??? (when?) • Скоро (adverb) [sko-rа] Soon • В ближайшем будущем (formal) [v bli-zhay-shem bu-du-shchim] In the near future • На подходе (colloquial) [na pat-kho-de] Approaching, on its way 📎 During a phone call yesterday, Trump endorsed Putin's idea to organize hockey games in the US and Russia between NHL and KHL players. 😉Ждём? 🎧🗣👇 #useful_vocabulary #synonyms #politics #news 😎 Stay with @learnRCRussian

Learn RCRussian🤍💙❤️

@learnrcrussian · Post #4805 · 07.06.2025 г., 14:45

Матерь котья! Бесконечный лоток! Holy Cat Mother! Endless litter box! • Бесконечный (masc.adj.) [bis-ka-nech-nyj] Synonyms (masc.adj.): • Безграничный [biz-gra-nich-nyj] Boundless, limitless, infinite, unbounded • Нескончаемый [nis-kan-cha-yi-myj] Endless, unending, interminable, incessant • Непрерывный [ni-pri-ryv-nyj] Continuous, uninterrupted, unbroken, constant ❗️Note that the prefixes БЕС- and БЕЗ- mean the absence of something, and their choice depends on the following letter: 🔻if it's a vowel or a letter representing a voiced consonant, use БЕЗ-; 🔻if it's a voiceless consonant, a sibilant, or ц, use БЕС-. 🔻Don't forget to ->❤️ this post, please! 🎧🗣👇Всем нескончаемой субботы😉! #useful_vocabulary #adjectives #synonyms #prefixes 😎RCR | Support | Boost

Learn RCRussian🤍💙❤️

@learnrcrussian · Post #4446 · 03.04.2025 г., 09:56

👋Приветствую всех, кто ещё в строю! 🔢🔢🔢Synonyms for the adjective▶️пушистый: 1. Мохнатый [makh-ma-tyj] Shaggy, fluffy • Мохнатый пудель (masc.) A wooly poodle 2. Лохматый [lakh-ma-tyj] Tousled, shaggy • Лохматые брови (plural) Shaggy eyebrows 3. Мягкий [myakh-kiy] Soft • Мягкий плед (masc.) A soft blanket 4. Плюшевый [plyu-shy-vyj] Plush, soft • Плюшевая ткань (femin.) Plush fabric 5. Пуховый [pu-kho-vyj] Downy • Пуховый платок (masc.) А downy shawl, headscarf ❓Do you know any other synonyms? 🎧🗣👇 #365_marathon #survive_in_Russia #adjectives #synonyms 😎 Stay with @learnRCRussian

Learn RCRussian🤍💙❤️

@learnRCRussian · Post #5354 · 29.08.2025 г., 09:01

🔢🔢🔢Synonyms for the verbВзорваться (all perfective aspect verbs): 1. Взорваться [vzar-va-tsa] To explode, burst up, go up, detonate 😄conjugation 🔻The standard, neutral term for a violent explosion. 2. Разорваться [ra-zar-va-tsa] To burst, to blow up, to rupture 😄conjugation 🔻Often implies a blast from within, causing something to break apart. 3. Сдетонировать [zde-ta-ni-ra-vat'] To detonate 😄conjugation 🔻A more technical, scientific term for a rapid, explosive reaction. 💢Colloquial variants: 4. Бумкнуть (onomatopoeic) [boomk-nut'] To go boom, to kaboom 😄conjugation 🔻A playful, childish word imitating the sound of an explosion. 5. Бухнуть (onomatopoeic) [bukh-nut'] To go bang/to thud/to blow up 😄conjugation 🔻Imitates a duller, heavier sound (like an explosion or a collapse). 6. Громыхнуть (onomatopoeic) [gra-mykh-nut'] To go crash, to boom, to rumble 😄conjugation 🔻Imitates a loud, crashing, thunderous noise. 🔻The suffix -НУ- typically indicates a single, perfective action. Example (video): • Пивная кега взорвалась под уфимцем. Никто не пострадал. Ну, кроме самого пива. The beer keg exploded under the Ufimets. No one was hurt. Well, except for the beer itself. Don't forget to ->❤️ this post, please! 🎧🗣👇Всем спокойной пятницы без взрывов! Video: videodozor #365_marathon #survive_in_Russia #verbs #synonyms #video_from_subcriber 😎RCR | Support | Boost