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

Резултати

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

Пребарај: #recycleright

当前筛选 #recycleright清除筛选
NEA Singapore

@NEASingapore · Post #1171 · 19.11.2025 г., 01:00

Clean recyclables belong in the blue recycling bin. But used batteries? They’re not that girl. 💅 Let’s #RecycleRight and avoid explosive drama.

NEA Singapore

@NEASingapore · Post #1167 · 12.11.2025 г., 01:02

Only fully emptied aerosol cans should go in the blue recycling bins. Partially filled ones pose fire hazards and can cause explosions or fires. 💡Tip: Press until you can no longer hear a hissing sound! Visit go.gov.sg/recycling-guide to learn how to #RecycleRight and prevent fires in recycling bins and trucks.

NEA Singapore

@NEASingapore · Post #706 · 29.11.2023 г., 01:00

Items that contain food or drink residue cannot be recycled. They may even contaminate other recyclables, putting everyone’s good effort to waste! Remember to empty and rinse your bottles or drink cans before recycling them. Let's #RecycleRight! ♻️🌟

NEA Singapore

@NEASingapore · Post #695 · 30.10.2023 г., 04:31

Explore refreshing new adventures in the world of sustainability by joining us on Lemon8. Let’s leave a trail of green footprints as we learn together, discover useful hacks and crafts, #RecycleRight guides and tips, and much more! Follow us at go.gov.sg/nea-lemon8 (or search for nea_sg), and let's sprinkle some citrusy eco magic together!

NEA Singapore

@NEASingapore · Post #557 · 01.06.2023 г., 01:02

Missed the nationwide Bloobox distribution? Good news! You can collect it at selected libraries on weekends this June, and learn more about how you can start a recycling corner at home and #RecycleRight. While stocks last!

NEA Singapore

@NEASingapore · Post #534 · 04.04.2023 г., 03:30

Planning to collect a Bloobox? Don’t forget to check the stock levels before heading down: https://www.gowhere.gov.sg/bloobox Together, let’s #RecycleRight: https://www.go.gov.sg/recycleright

NEA Singapore

@NEASingapore · Post #518 · 18.03.2023 г., 01:15

It’s Global Recycling Day, so let’s be reminded to #RecycleRight! If you’re not sure whether an item can be recycled, check with Bloobin: www.cgs.gov.sg/recycleright/check-my-item

NEA Singapore

@NEASingapore · Post #517 · 17.03.2023 г., 02:22

From 19 Mar to 30 Apr 2023, all households can collect a free Bloobox to start the habit of recycling at home. It also comes with guidelines on what can be recycled. Let’s #RecycleRight! More info at www.gowhere.gov.sg/bloobox

NEA Singapore

@NEASingapore · Post #502 · 05.02.2023 г., 02:01

As the Lunar New Year festivities come to an end, let’s recycle what we can! Instead of throwing away plastic containers that were used to contain the goodies, reuse or recycle them. Not sure whether an item can be recycled? Find out at www.cgs.gov.sg/recycleright/check-my-item #RecycleRight

NEA Singapore

@NEASingapore · Post #473 · 09.12.2022 г., 00:20

Are they friend or foe? Bloobin and the E-Waste Recycling Bin are working towards the same goal – to minimise waste and helping Singapore become a Zero Waste Nation. Here’s a quick guide to get to know them, so that you can #RecycleRight! go.gov.sg/recycleright

NEA Singapore

@NEASingapore · Post #380 · 12.07.2022 г., 07:05

Not sure what to do with your e-waste? Check out the infographics below to find out what you can recycle, and how to recycle. More information at https://go.gov.sg/e-waste#RecycleRight

123•••56
ПретходнаСтраница 1 од 6Следна