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

Резултати

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

Пребарај: #outside

当前筛选 #outside清除筛选
The Idealist

@theidealist · Post #2104 · 29.08.2020 г., 13:00

​​Outiside: известный учёный считает, что стареть необязательно Звучит как фраза из научно-фантастического фильма, но не для известного учёного Дэвида Синклера, одного из ведущих в мире специалистов по старению. Профессор Гарварда, вошедший в список 100 самых влиятельных людей мира в 2014 году по версии журнала Time, согласен с тем, что в какой-то момент все должны умереть, но он утверждает, что мы можем удвоить продолжительность своей жизни и жить здоровой и активной жизнью до конца своих дней. «Простуда, тяжелая тренировка и время от времени голодание - все это задействует то, что Синклер называет цепью выживания нашего тела, в которой сиртуины приказывают клеткам усилить свою защиту, чтобы поддерживать организм (вас) в живых. Хотя теория цепи выживания Синклера еще не доказана в условиях испытаний, существует множество исследований, которые предполагают, что упражнения, переохлаждение и снижение калорийности помогают замедлить побочные эффекты старения и предотвратить болезни, связанные со старением. В частности, голодание было хорошо подтверждено другими исследованиями: в различных исследованиях и мыши, и дрожжи, которых кормили ограниченными диетами, живут намного дольше, чем их сытые коллеги. Двухлетний эксперимент на людях в 1990-х годах показал, что у участников, которые придерживались ограниченной диеты, из-за которой они оставались голодными, часто снижалось артериальное давление, уровень сахара в крови и уровень холестерина. Последующие исследования на людях показали, что сокращение калорий на 12 процентов замедляет биологическое старение на основе изменений биомаркеров крови». https://theidealist.ru/agingisoptional/ #Outside#наука#человек#старение

The Idealist

@theidealist · Post #2955 · 18.09.2025 г., 08:11

​​Outside: новое исследование раскрывает то, что на самом деле происходит с вашим телом после ультрамарафона на 160 км Что остаётся от человеческого тела после 160 километров боли, высот и недостатка сна? Новое исследование разобрало ультрамарафон не только на калории, но и на дни восстановления: сколько энергии уходит на финиш, а сколько — на то, чтобы снова встать с кровати. Оказывается, настоящее испытание начинается не на дистанции, а после неё — когда организму нужно залатать себя изнутри, восполнить тысячи сожжённых калорий и восстановить водный баланс. И всё это — без тренировок, но с невероятным "послевкусием" стресса, которое не улетучивается неделями. Эта статья — взгляд внутрь человека, который дошёл до предела, и за него заглянул. «Тренировка — это тяжело. Но и восстановление организм воспринимает как полноценную работу. Не забывайте подкармливать своё тело, чтобы оно справилось» https://theidealist.ru/after160/ #Outside#наука#человек#бег

The Idealist

@theidealist · Post #2118 · 24.09.2020 г., 13:00

​​Outside: как потерпевшие кораблекрушение люди 10 дней выживали в открытом море 25 ноября 2019 года Крис Карни и его команда из двух человек отправились в в путешествие на парусной лодке с мотором из Японии в Гавайи. Крис и товарищи были опытными моряками, а лодка - вполне современной. Но море может преподнести любые сюрпризы, и в результате сильного шторма люди оказались на весьма потрёпанном прироой судне посреди огромного океана, без связи, с минимумом воды и еды, почти без надежды. Им уалось выжить Крис считает, что главными помощниками в беде стали разум и хладнокровие. Его история - в сегодняшнем материале. «Очень повезло, что судно выдержало. Если бы у нас была пролом, лодка затонула бы примерно через 30 секунд. Нам было холодно, всё промокло. Ни сухой одежды, ни сухих кроватей. Мы сидели на голодном пайке, вроде пяти миндальных орехов в день. Ограничив то немногое количество воды и еды, которое у нас осталось, мы решили, что сможем прожить 40 или 50 дней. Раньше я никогда не сталкивался со смертью лицом к лицу. Все знают, что они умрут. Но никому не приходит в голову думать о том, что смерть наступит через 50 дней». https://theidealist.ru/shipwreck/ #Outside#человек#море#кораблекрушение#выживание

SNOWBOARD with AlexGirnik

@alexgirniksb · Post #140 · 12.08.2022 г., 08:34

Ура. Я дома, я на связи! В ближайшее время всем отвечу☺️ Имеретинские были прекрасны, по всем связанным вопросам с маршрутом пишите в личку. Из нового подвернул ногу и теперь снова длительное восстановление ☹️ #mountain#lake#outdoor#outside#caucasus #alpina#buff

SNOWBOARD with AlexGirnik

@alexgirniksb · Post #64 · 29.05.2022 г., 11:51

Уже в начале июня мы возвращаемся в Красную Поляну и есть свободные дни для походов по маршрутам одного дня, и поездок в Абхазию. А так же уже можно бронировать многодневные туры, места есть и разлетаются как горячие пирожки. И да мы готовы организовать поход под запрос и даты которые вам удобны🙏🏻 #походы#туризм#горы#кавказскийзаповедник#mountain#outdoor#outside#trekking

SNOWBOARD with AlexGirnik

@alexgirniksb · Post #109 · 29.06.2022 г., 17:30

Все любители комфорта были услышаны! На Розе Хутор построили крутой, комфортный кемпинг. А не вот эти вот ваши палатки, спальники, котелки, горелки. Уже 1 июля открывается высокогорный кемпинг Нахазо. Где можно будет провести время на природе, оторваться от работы и получить максимальный заряд. Я думаю, что каждый любит те моменты, когда: неспешно просыпаешь, завтракаешь, проводишь время с самим собой или семьей, друзьями! А также гуляешь, кушаешь, сидишь на краю горы перед крутым спуском и впитываешь горные красоты. Отключаешь голову, расслабляешься и начинаешь просто получать удовольствие от жизни. Моя жена @kristin044ka была там недавно и осталась в полном восторге. Говорит, что подобного нет нигде в России. Я вот уже горю желанием посмотреть на это место, а вы? @kirillumrikhin📸 @rosakhutor #rosakhutor#mountainresort#mountainhotels#mountaincamping#mountain#landscape#outdoor#outside#trekking#hikking#caucasus

SNOWBOARD with AlexGirnik

@alexgirniksb · Post #102 · 27.06.2022 г., 12:26

Как сэкономить на снаряжении, и когда лучше взять в аренду? Сейчас покупать снаряжение для активного отдыха стало довольно накладно. А если вы занимаетесь сноубордом/лыжами, туризмом, велосипедом и т.д. - то встаёт ещё вопрос и хранения 🙈 Но вместо того, чтобы грустить, рассмотрим лайфхаки. Сейчас реально выгодно брать снарягу в аренду, т.к. покупать новое может быть накладно. Особенно, рекомендую аренду, когда вы первый раз идёте в поход или пробуете катание на сноуборде - есть возможность оценить снаряжение, чтобы получить понимание: а нужно ли вам ходить в горы в будущем? И если нужно - какой именно рюкзак, палатку, спальник - вы хотите купить, дабы не переплачивать и не жалеть о покупке. Поэтому я всё чаще стал рекомендовать пользоваться отличным сервисом аренды снаряжения от @kant_sport в Москве. Это удобно, т.к можно гарантировано взять качественное, чистое снаряжение за разумные деньги. К тому же сейчас в прокате доступно 150 позиций от ледорубов, спальников до велосипедов с лонгбордами. Круто, не правда ли? Ну и наконец, даже сейчас можно купить снаряжение за отличную цену, а также использовать промокод на скидку. Напомню, что для покупателей магазина @kant_sport у меня есть промокод, он действует в магазине и сервисе. Пользуясь моим промокодом вы поддерживаете меня. Пиши в Direct, поделюсь скидкой) #rent#outdoor#outside#sportislife#большеспортаярчежизнь#кантспорт#прокат#арендаснаряжения #snowboard#bike#bicycle#sup#rafting#skate#alpinism#ski