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

Резултати

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

Пребарај: #navidad

当前筛选 #navidad清除筛选
🔬 EL MUSEO DE LA CIENCIA 🧬

@CienciaParaTodos · Post #10910 · 24.12.2024 г., 17:00

​​​​#Navidad EL SOLSTICIO Parte 2 Pero ¿qué es? Los solsticios (del latín solstitium (sol sistere), que significa ‘Sol quieto’) son los momentos del año en los que el Sol alcanza su mayor o menor altura aparente en el cielo, y la duración del día o de la noche son las máximas del año, respectivamente. En el solsticio de diciembre el Sol alcanza su altura mínima al mediodía del 21 o 22 de diciembre sobre el trópico de Capricornio y se corresponde con el día más corto del año, marcando el paso del Otoño al Invierno. A partir de esta fecha, los días comienzan a alargarse en un hemisferio y a acortarse en el otro. En el Solsticio de Junio que ocurre entre el 21 o 22 de junio, sucede lo mismo pero a la inversa. A lo largo del año la posición del Sol vista desde la Tierra se mueve hacia el Norte y hacia el Sur, y la existencia de los solsticios está provocada por la inclinación del eje de la Tierra sobre el plano de su órbita. En el hemisferio Norte, en estas fechas marcan la llegada del invierno, y en el Sur la del Verano. Podríamos dejaros miles de datos y cálculos sobre los solsticios, pero su mayor belleza radica en su avistaje ya que es uno de los mejores espectáculos que se pueden observar estos días. Por eso, y para vuestro disfrute, os dejamos algunos videos de tan bello momento. 🌞Solsticio en el Cerro La estrella 🌞Solsticio en Karnak 🌞Solsticio en Africa. Timelapse Pero sin duda lo más difícil de ver es este momento en los Polos... Aquí tenéis los dos: 🧊Solsticio Polo Norte 🧊Solsticio Polo Sur @CienciaParaTodos

Hashtags

🔬 EL MUSEO DE LA CIENCIA 🧬

@CienciaParaTodos · Post #10909 · 24.12.2024 г., 17:00

#Navidad EL SOLSTICIO Parte 1 El ser humano lleva miles de años mirando al cielo fue encontrando la forma de marcar aquellos momentos que eran especiales. El Solsticio es uno de ellos. Grandes fiestas se organizaban alrededor de éstas fechas en todo el mundo, ya que en muchas culturas han encontrado una fiesta que, aproximadamente, coincida con el solsticio. A pesar que es común que la gente en nuestra época piense que los solsticios se producen el 25 de diciembre y el 25 de junio, ello es un error ya que éstos se producen entre el 21 y 22 de tales meses. @CienciaParaTodos

Hashtags

🗽 PERLAS ESCONDIDAS ⌛️

@ImagenesHistoricas · Post #10266 · 24.12.2025 г., 18:00

#Navidad LA TREGUA DE NAVIDAD 📸 La tregua comenzó en la víspera de la Navidad el 24 de diciembre de 1914, cuando las tropas alemanas comenzaron a decorar sus trincheras, luego continuaron con su celebración cantando villancicos: específicamente "Stille Nacht" (Noche de paz). Las tropas británicas en las trincheras al otro lado respondieron entonces con villancicos en inglés. 📸The Christmas Truce The truce began on Christmas Eve on December 24, 1914, when German troops began decorating their trenches, then continued their celebration by singing Christmas carols: specifically "Stille Nacht" (Silent Night). The British troops in the trenches on the other side then responded with Christmas carols in English. 🇬🇧 @ImagenesHistoricas

Hashtags

123•••10•••20•••30•••40•••4344
ПретходнаСтраница 1 од 44Следна