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

Резултати

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

Пребарај: #digitaldetox

当前筛选 #digitaldetox清除筛选
Щукина про ТЦ

@girlinmall · Post #2061 · 18.03.2025 г., 05:08

Дорогой дневник, вот так выглядят мои выходные, когда экранное время ограничено 2 часами в день Готовлю материал про интересное явление — «ЗОЖ-выгорание» и о том как и почему этот процесс может стать вашей реальностью, даже если вы «не из таких» #digitaldetox#непротц

Щукина про ТЦ

@girlinmall · Post #2331 · 07.08.2025 г., 10:54

💍Уведомлениям нашли оправу «Умное» кольцо с бриллиантом, которое умеет фильтровать цифровой шум Наверняка многие устали от постоянных уведомлений на телефоне: хоть на беззвучном, хоть на вибрации или световыми проблесками — сообщения «прорываются» в нашу жизнь. Их бы хотелось и вовсе отключить или вообще устроить «цифровой детокс», но такую роскошь мало кто может себе позволить. А вот бриллиантовое украшения для невроза эпохи коннекта в режиме 24/7 — легко. Стартап SPKTRL, основанный выходцами из LVMH, которые там отвечали за инновации и приложения, предлагает элегантное решение: умное кольцо. Вместо экрана — камень, меняющий цвет и деликатно сообщающий о важных уведомлениях. Например, нежно-пурпурный цвет если написал кто-то близкий, тревожно мерцающий синий для мессаджей от бизнес-партнеров или «старших по званию». Идея в том, чтобы гаджет выглядел как роскошное украшение, а не как утилитарный фитнес-браслет. Вся технология спрятана внутри, а интерфейсом служит сам бриллиант. Звучит как идеальное средство от информационной перегрузки, но есть нюанс. Кольцо избавляет от экрана, но не от стресса. Когда ваш бриллиант вспыхивает «цветом биг босса», тревога никуда не девается — она просто становится гламурнее. #тренды_wearables#digitaldetox

#ТопНовостейРСМ Представляю очередной обзор новостей РСМ. Самые интересные события, комментарии и инициативы членов РСМ. Прошедшие дни показали нам, что самоизоляция стала надоевшей привычкой, от которой хотят все освободиться. Ностальгия по шашлыкам и веселым пятницам заполнила сториз в Instagam. Взамен веселым временам мы имеем онлайн совещания, которые тоже стали рутиной, обычным явлением. Огромное количество прямых эфиров уничтожают последнее желание появляться в социальных сетях. Итак, самые горячие новости РСМ: 1. На первом месте находится акция #DigitalDetox. В воскресенье команда АТ РСМ @atrsm с Еленой Дармодехиной предложили всем отдохнуть от потока информации и сделать паузу, набраться сил и энергии. Акция стала глотком свежего воздуха для многих на самоизоляции. 2. Проекты РСМ вошли в пул «Социальные лифты для каждого» Национального проекта «Образование». Данное достижение является результатом качественной и профессиональной работы всей команды Российского Союза Молодежи, которое в очередной раз показывает авторитет и доверие к РСМ со стороны власти. 3. Центральная программа «Студенческое самоуправление» и АСО России. Мне очень близка тема ССУ, поэтому я рад даже самым небольшим изменениям в лучшую сторону. Успешно проведен первый этап Всероссийского конкурса на лучшую организацию деятельности органов студенческого самоуправления. Общее количество поданных заявок составило 359 из 8-ми федеральных округов и 48-ми субъектов РФ. АСО России все активнее проявляет себя в социальных сетях, инфополе стало заполняться новостями о нашем студенческом движении. АСОбенные эфиры нас знакомят с молодой командой и регионами АСО России. Мой лайк Артуру Мелитоняну, Дарье Матвиенко (Панариной) и Кириллу Черкессу. Ну и в заключении. Провалы тоже были. Заслуженный #Facepalm получает редакция ТГ-каналов ненавистников Павла Красноруцкого. За последнее время они выпустили столько негатива в адрес председателя РСМ, что совсем забыли о своем лидере. Причиной данной ситуации по слухам является накопившиеся противоречия, которые только усугубляются в условиях самоизоляции. Договориться друг с другом сложно, поэтому их объединяет только нелюбовь к Павлу Красноруцкому. От любви до ненависти один шаг, главное помнить об этике общения. #ТопНовостейРСМ#РСМ#КомандаРСМ

Симптомы цифрового СДВГ обратимы. И иногда для движения вперёд нужно на время вернуться к более медленным, целостным форматам информации. #цифроваягигиена#синдромдефицитавнимания#когнитивнаятерапия#тренировкавнимания#нейропластичность#телдетокс#советскоекино#digitaldetox#СДВГ#восстановлениемозга

#无聊#创造力#数字戒断#心理健康#幸福感#生命意义#默认模式网络#屏幕时间#快乐 #Boredom#Creativity#DigitalDetox#MentalHealth#Wellbeing#MeaningofLife#DefaultModeNetwork#ScreenTime#Happiness Why boredom is essential for your mental wellbeing Boredom is crucial for mental well-being, as it activates the brain's default mode network (0:24-0:26), fostering self-reflection and a sense of meaning (1:19-1:28). Constantly avoiding boredom with devices, like phones (1:50-2:07), prevents this vital process, contributing to depression and anxiety (2:26-2:40). To counter this, the video recommends embracing boredom by: Avoiding devices during workouts and commutes (2:47-3:06). Implementing device-free times, such as evenings or meals (3:53-4:07). Taking regular social media breaks (4:12-4:18). By doing so, individuals can find greater meaning, happiness, and engagement in their lives (3:27-3:39).