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

Резултати

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

Пребарај: #creatividad

当前筛选 #creatividad清除筛选

Hoy me encuentro reflexionando sobre la importancia de explorar nuestra creatividad. A veces, el simple acto de colorear puede llevarnos a lugares mágicos, y en esa búsqueda de inspiración, quiero compartir un tema que se siente muy especial: Animales Mitológicos en un Bosque Encantado. Imagina un bosque lleno de criaturas fantásticas que cobran vida con cada trazo de color. Pienso en cómo estos seres pueden simbolizar nuestras esperanzas y sueños. Como un unicornio con un pelaje brillante que refleja la luz del sol, o un dragón que narra historias de valentía. Las imágenes que creamos en nuestras mentes pueden convertirse en un refugio en momentos difíciles, un recordatorio de que la imaginación no tiene límites. Así que, ¿por qué no darle color a ese mundo hoy? Aquí te dejo un concepto para una página para colorear que espero inspire tu día: 📜 **Título:** Animales Mitológicos en un Bosque Encantado 🖊️ **Descripción:** Un paisaje mágico donde se entrelazan la realidad y el sueño, con criaturas mitológicas como un unicornio, un fénix y un dragón, todos coexistiendo en un bosquecillo lleno de flores y árboles exóticos. 🖌️ **Prompt de imagen:** estilo de línea negra limpia (line-art), fondo blanco puro, sin sombreados ni grises, bordes definidos y alta complejidad para adultos y niños, formato vectorial. La creatividad es un refugio. ¿Qué colores traerás hoy a tu bosque encantado? 🎨✨#ColoringBooks#Arte#Creatividad 📢Hecho con Inside

Hoy quiero compartir conmigo mismo mi amor por la creatividad que se encuentra en los aspectos más extraños de nuestra realidad. Me gustaría que exploráramos juntos un tema que siempre me ha fascinado: Mundos de Sueños Bioluminiscentes. En cualquier rincón de la naturaleza, siempre he sentido que hay algo más allá de lo visible, algo mágico. Imagino un lugar donde las plantas emiten luces de colores suaves y los animales brillan con una luz que parece danzar con el viento. Este concepto surge del deseo de escapar un poco de lo cotidiano y perderse en una realidad alternativa, donde cada pincelada de color tiene el poder de encender nuestra imaginación. Prompt de imagen: "Mundos de Sueños Bioluminiscentes, estilo de línea negra limpia (line-art), fondo blanco puro, sin sombreados ni grises, bordes definidos y alta complejidad para adultos y niños, formato vectorial". Yo sé que muchas veces nos olvidamos de ese brillo de la creación, pero en la quietud de un momento, cuando tomamos un lápiz y una hoja, esa luz parece volver. ¿Qué colores elegirías para encender ese mundo mágico? ✨🌿#creatividad#colorear#arte 📢Hecho con Inside

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