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

Резултати

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

Пребарај: #distance

当前筛选 #distance清除筛选
Amazing Geography 🌍

@amazingeo · Post #42 · 13.08.2025 г., 16:12

🌍 The world's longest straight-line journey between two points using only latitude and longitude runs over 13,589 km from Liberia on Africa’s coast to eastern China, crossing no ocean. ✨ #coordinates⚡#distance⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍

Universe Mysteries 🪐

@cosmomyst · Post #510 · 20.11.2025 г., 22:21

🪐 The galaxy JADES-GS-z14-0, discovered in 2023 with the James Webb Space Telescope, is one of the farthest objects ever seen—its light has traveled for about 13.5 billion years to reach Earth. Observing JADES-GS-z14-0 lets astronomers look back to when the universe was less than 300 million years old, offering a rare glimpse into the early stages of galaxy formation just after the Big Bang. ✨ #galaxies⚡#distance⚡#universe⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #474 · 02.11.2025 г., 22:21

🪐 The James Webb Space Telescope has spotted galaxy JD1 (also known as MACS0647-JD1), whose light began its journey over 13.3 billion years ago—when the universe was only about 4% of its current age. Observing JD1 allows scientists to study what galaxies looked like close to the cosmic dawn, revealing the structure of the universe in its earliest moments. ✨ #galaxies⚡#distance⚡#universe⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #446 · 19.10.2025 г., 12:21

🪐 The galaxy CEERS-93316, discovered by the James Webb Space Telescope, is one of the most distant galaxies ever observed—its light began traveling toward us more than 13.4 billion years ago. Seeing CEERS-93316 means we are looking back in time to when the universe was less than 300 million years old, just a tiny fraction of its current age, revealing the earliest stages of galaxy formation after the Big Bang. ✨ #galaxies⚡#distance⚡#universe⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #409 · 11.10.2025 г., 20:21

🪐 The galaxy named Earendel’s host, WHL0137-LS, contains the most distant single star ever detected—a star nicknamed Earendel whose light has taken about 12.9 billion years to reach Earth. Thanks to a powerful gravitational lens (a natural "magnifying glass" formed by another galaxy cluster), the Hubble Space Telescope was able to spot Earendel, offering a rare view of a lone star shining when the universe was less than a billion years old. ✨ #universe⚡#distance⚡#galaxies⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #378 · 05.10.2025 г., 18:21

🪐 The galaxy ZF-COSMOS-20115, located more than 12 billion light-years from Earth, surprised astronomers by being "dead"—no longer forming new stars—when the universe was just 1.7 billion years old. Studying such distant, quenched galaxies helps scientists understand how some of the earliest cosmic structures formed and evolved in the young universe, illuminating the extreme environments at the farthest reaches of space and time. ✨ #galaxies⚡#distance⚡#universe⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #278 · 16.09.2025 г., 00:11

🪐 The galaxy Maisie’s Galaxy (CEERS-93316), discovered by the James Webb Space Telescope, is one of the most distant objects ever observed, with its light traveling for about 13.4 billion years to reach Earth. We're seeing Maisie’s Galaxy as it existed just a few hundred million years after the Big Bang, providing a rare glimpse into the universe's earliest moments when the first galaxies were assembling and stars began to shine. ✨ #universe⚡#distance⚡#galaxies⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#cosmos⚡#space 👉subscribe Universe Mysteries ​

Amazing Geography 🌍

@amazingeo · Post #408 · 23.10.2025 г., 18:31

🌍 The world’s longest scheduled nonstop passenger flight connects New York and Singapore, covering about 15,300 kilometers in nearly 19 hours—highlighting advances in global air transport geography. ✨ #aviation⚡#distance⚡#networks⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #230 · 06.09.2025 г., 03:11

🪐 The galaxy HD1, discovered in 2022, may be the most distant known object in the universe—its light has traveled more than 13.5 billion years to reach us. Observing HD1 gives astronomers a rare window into the universe just 300 million years after the Big Bang, offering clues to how the earliest galaxies and stars began to form in the cosmic dawn. ✨ #galaxies⚡#distance⚡#earlyuniverse⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries ​

Universe Mysteries 🪐

@cosmomyst · Post #560 · 15.12.2025 г., 22:21

🪐 The James Webb Space Telescope has observed the galaxy JADES-GS-z7-01-QU, one of the most distant “quiescent” galaxies ever found, meaning it has stopped making new stars even though its light began traveling to us over 13 billion years ago. Seeing JADES-GS-z7-01-QU lets scientists study how some galaxies aged and shut down astonishingly early, offering a rare glimpse into the universe’s remote past when cosmic structures were just beginning to take shape. ✨ #galaxies⚡#distance⚡#telescopes⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​