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

Резултати

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

Пребарај: #olympuspenft

当前筛选 #olympuspenft清除筛选
allanesta_film

@allanesta_film · Post #284 · 10.01.2026 г., 08:10

🎞 OPTI colour Новенькая 🍭 Чудный подарок от хорошего человека. Кусочек магии в 36 кадров, запечатанный в светонепроницаемую канистру. 📎 290 📆 01_2026 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Rollei Retro 80 #filmgallery #olympuspenft

allanesta_film

@allanesta_film · Post #153 · 29.05.2025 г., 17:29

🎞 PhotoWorks 200 (exp.2004) Есть своя магия в съёмке на плёнку, у которой вышел срок годности. Привлекает непредсказуемость результата, азарт и уникальная возможность попробовать редкие экземпляры, которые уже давно не выпускаются. 📷 Olympus Pen FT/ F.Zuiko 38/1.8 P.S. Кто-то собирает коробочки, кто-то канистры. А моя коллекция состоит из снимков тех плёнок, которые я когда-либо использовала для своих фотографий. #filmgallery #olympuspenft

allanesta_film

@allanesta_film · Post #146 · 23.05.2025 г., 11:23

🎞 Wolfen NC500 Не первая моя катушка данной плёнки, но каждый раз она получается по-своему, со своим настроением. 📷 Olympus Pen FT/ F.Zuiko 38/1.8 #filmgallery #olympuspenft

allanesta_film

@allanesta_film · Post #219 · 10.09.2025 г., 18:34

🐌 Такая кроха живёт на кустах дачной голубики 🌿 📎 268 📆 08_2025 🗺 г. Калининград 📷 Olympus Pen FT/ F.Zuiko 38/1.8 + макролинза (+4 ) 🎞 Ilford Pan 100 🧪 D-76 1+1, 19°C - 11.30 мин 📌 iso 100 #ilford #ilfordpan100 #olympuspenft

allanesta_film

@allanesta_film · Post #136 · 16.05.2025 г., 14:05

Сила знаков 📎 233 🗺 Луксор, Карнак / Египет 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Ilford Pan 100 📆 03_2025 🧪 D-76 1+1, 19°С - 11'45 мин 📌 iso 100 #ilford #ilfordpan100 #olympuspenft

allanesta_film

@allanesta_film · Post #202 · 04.08.2025 г., 19:21

½ + ½ Полукадровые истории 📎 121 🗺 Берлин, Германия 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Agfa Aviphot Pan200 📆 08_2023 🧪 Д-76 📌 iso 200 #olympuspenft #agfa #agfaaviphot

allanesta_film

@allanesta_film · Post #120 · 03.04.2025 г., 11:13

Гармония 📎 205 🗺 Португалия 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Fujifilm Acros 100 II 📆 10_2024 🧪 D76 1+1 / 20°С- 9'30 мин 📌 iso 100 Случайная встреча двух кадров из других диптихов 🖇 #olympuspenft #fujifilm #fujifilmacros100

allanesta_film

@allanesta_film · Post #216 · 05.09.2025 г., 15:05

🎞 Kodak Ektar 100 Цветная плёнка — нечастый гость в моём канале. И дело не в её цене. Я заметила тенденцию: дома мне больше нравится снимать на чёрно-белую. Продолжительность съёмки одной катушки цвета равна 1.5÷3 катушкам ч/б. Зато в путешествии цветная улетает быстрее, и по количеству она то сравнивается с чёрно-белой, то даже чуть её превосходит. Поэтому у меня два фотоаппарата: один для цвета, другой для ч/б. 📎 268 📆 08_2025 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Ilford Pan 100 #filmgallery #olympuspenft #ilford #ilfordpan100

allanesta_film

@allanesta_film · Post #185 · 09.07.2025 г., 21:22

🎞 Adox CHS 100 II Случайное наложения кадров и коробочку не видно, значит в будущем будет дубль два 📎 250 📆 06_2025 🗺 Черняховск, Калининградская область 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Agfa Aviphot #filmgallery #olympuspenft #agfa #agfaaviphot

allanesta_film

@allanesta_film · Post #195 · 23.07.2025 г., 17:19

Выбор Каждый раз - это дилемма. И не просто между цветной и черно-белой, свежей или просрочкой, проверенной любимой или неизвестной новой плёнкой. Нет, у меня в голове куча критериев: фотоаппарат, параметры плёнки, время года, планируется ли поездка, личные задумки сюжетов, настроение и т.п. А порой это просто интуитивный выбор ✨ 📎 247 🗺 Калининград 📷 Olympus Pen FT/ F.Zuiko 38/1.8 🎞 Kodak Proimage 100 (exp.2023) 📆 05_2025 📌 iso 100 P.S. на фото ещё не все. верх - чб / низ - цвет #olympuspenft #filmgallery #kodak #kodakproimage100

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