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

Резултати

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

Пребарај: #prepper

当前筛选 #prepper清除筛选
独立人指南

@Dulirenorg · Post #958 · 28.02.2023 г., 03:06

https://wangpei.net/2023/02/28/%E4%B8%AD%E7%BE%8E%E8%8B%A5%E5%BC%80%E6%88%98%EF%BC%8C%E4%B8%AD%E5%9B%BD%E5%9F%BA%E7%9D%A3%E5%BE%92%E8%83%BD%E5%81%9A%E7%82%B9%E4%BB%80%E4%B9%88%EF%BC%9F/ #prepper

Hashtags

独立人指南

@Dulirenorg · Post #699 · 23.04.2020 г., 06:44

A Guide To Food Storage©Utah State University FEMA, the Federal Emergency Management Agency, advocates disaster preparedness. They advise people to be informed, make a plan, and prepare an emergency kit. A major part of that emergency kit is food and water for you and your family. But, what types of food should you store? How much food should you store? How will you cook it? Does it need to be refrigerated? How much water needs to be stored and how? Will these foods go bad during storage? Can my family or I become sick if we store these foods incorrectly? Can I throw these foods in my car in case I am forced to evacuate my home? These are all questions that you need to consider in both your planning and preparation stages. #household#prepper#foods

独立人指南

@Dulirenorg · Post #931 · 04.11.2022 г., 12:58

https://permacomputing.net/ 数字领域的朴门实践正在芬兰萌芽! New to permacomputing? Permacomputing is a more sustainable approach to computer and network technology inspired by permaculture. Permacomputing is both a concept and a community of practice oriented around issues of resilience and regenerativity in digital technology. In a time where computing epitomizes industrial waste, permacomputing encourages a more sustainable approach, maximizing hardware lifespans, minimizing energy use and focussing on the use of already available computational resources. We do this because humans are part of nature and technology is an extension of humans, and we acknowledge that technology has been used to harm nature. We want to find out how we can practice good relations with the Earth by learning from ecological systems to leverage and re-center existing technologies and practices. We are also interested in investigating what a permacomputing way of life could be, and what sort of transformative computational culture and aesthetics it could bring forward. If you want to know more, please start reading about what is permacomputing in essence, and then dive into its principles. Wiki Started in May 2022, the permacomputing wiki is where we maintain a set of principles, collectively document practical perspectives and interpretations of these principles, and offer more speculative reflections on permacomputing. The wiki is still at a very early stage of development, we are frequently working on it. This main page of the wiki is an index to the various topics covered. See "about" for a more detailed discussion about the wiki itself. #致呼吸不畅的数字生活#DIY#prepper

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