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 слични објави

Пребарај: #everyone

当前筛选 #everyone清除筛选
Buidlpad

@native_fi · Post #46 · 07.06.2025 г., 04:03

#everyone The submission window for our $SAHARA Priority Allocation is now closed. Thank you to everyone who submitted thoughtful and original content supporting Sahara AI 💙🔆 Every submission will undergo a manual review for quality. Selected contributors will receive an email by June 10 at 00:00 AM UTC with: • Their unique invitation code • Priority Allocation amount • Steps to complete KYC and subscribe If you participated, please keep an eye on your inbox (and spam folder) for updates from Buidlpad. We’re proud to recognize and reward the community members creating value around Sahara AI. Stay tuned for the upcoming KYC Stage! @gBuidl💙

Hashtags

Pensive|

@PensivePost · Post #4790 · 21.01.2021 г., 21:56

*Who Am I* Ah! This drizzling rain Those lovely skies I love it all I don't know why These twinkling stars That lovely moon I wanna see them Even in the noon I wanna run I wanna fly Do everything possible Before I die That's what a part of me Always says The part I wish could Forever stay But in this world That's not the case Like every coin I have another face The one which is scared The one which is shy Wanting to be heard Almost ready to cry That me doesn't have A place to go Neither when I burn Nor when I glow I spend nights wondering Which of them is right I often put them in a battlefield But they refuse to fight So now I'm really confused I don't know why All I wanna know is who am I .. #review#everyone#poem

Pensive|

@PensivePost · Post #4761 · 18.01.2021 г., 08:33

*Perhaps my soul is dark* I am drawn into your world That you so darkly carved With your emptiness Perhaps my soul is dark Perhaps I like black holes Perhaps I hope to emerge On the other side as bright As a brilliant.radiant star That lights up a million worlds Im sorry Jasmine I am drawn to your dark nudity The poverty of your humanity Perhaps my soul is dark Perhaps I like the thorns better Than the roses and the fragrance Of blood better than jasmine Perhaps I want to break through The darkest night pouring into A zig zillion shards of light silently making a new dawn #review, #RC, #Everyone, #poetry

Pensive|

@PensivePost · Post #5350 · 07.08.2021 г., 23:32

The beau, ignorance. I knew. That made me a shitty person If there was anything that made it unbearable and more hard to overcome than anything, it’s the fact that I knew it was going to happen. It’s a pity we don’t get to un-know stuff. Like just trash it. It felt(no, was )wrong. Like hoarding the girls lavatory or cyber bullying overweight people because it felt right Or self-hurting so you can feel anything other than this unimaginable sorrow that was slowly drowning you. If there was anything that was worse than knowledge, it’ll be passivity, more like apathy. The fact that you didn’t act. That I didn’t act This didn’t feel wrong. It didn’t feel like anything I have ever felt. Words can’t quantify how it feels. Probably, nothing will. I hope nothing does. Excerpt from my book, For the Lies that Matter @whosayegat #review #everyone #excerpts

VIP_影视分享

@wangzhuanzhan · Post #32762 · 10.09.2024 г., 07:01

R-r人r人r都d说s我w爱a你n- 人人都说我爱你 Everyone Says I Love You (1996) 直达链接:https://pan.quark.cn/s/6a7fc5716f09 #人人都说我爱你#Everyone Says I Love You #大家都说我爱你#为你唱情歌 链接:https://link3.cc/sf_com #电影#喜剧#美国#90年代