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

Резултати

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

Пребарај: #gossip

当前筛选 #gossip清除筛选
✨Ocean of Knowledge ✨

@ook_eg · Post #2900 · 17.08.2025 г., 02:41

Protect Yourself From Gossip On Social Media Just like we practice not to speak about people’s behaviour or life issues with a negative energy, being judgmental, critical or stating their weakness, let us now practice the same for people whom we read and listen about on social media. Let us protect ourselves from all forms of gossip about others, insulting others and judgment. You decide not to participate in gossip in any form: untruths, half-truths, private truths, rumors and judgments. But your social media news feed is full of stories about people close to you, people you barely know and about absolute strangers. How do you withdraw and yet maintain strong social bonds? People increasingly spread rumors or vent criticism through social media. But we have a responsibility to not participate or spread them. It’s their opinion, we are not a part of their story, their issue or their solution. So, there is no need to be a part of that gossip as well. Whether someone’s image is being damaged, someone is filing for divorce or someone was fired from a job, it’s their private matter and not an invitation for anyone else to discuss. Let’s have the courage to politely but firmly withdraw or express our disinterest. We can even change the direction of the conversation. And if we ever need to talk about people, let’s make a compliment. Otherwise our aura gets stained and so will our integrity. Remind yourself everyday - I am a pure being. I use social media responsibly, and refrain from gossip. I choose and consume information wisely. Sit back and see yourself using social media with the right energies. Remind yourself that you are a knowledgeful being. Understand what is right for you. Read, watch and listen to information with care. Absorb only that which is healthy for your emotional health. Be stable as you read and watch information about others. Pause and ask yourself is it the truth or is it someone’s perception? Is there something I can do for it? If yes, share your perspective, a positive perspective, give a constructive feedback. Ensure that your intention is for betterment, empowerment and to create change with respect. Contribute to positive transformation with your pure thoughts and words. If there is nothing you can do, then remain silent. Your silent mind will protect you and protect others and it also preserves the spiritual energy of the environment. #Gossip

Hashtags

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