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 слични објави

Пребарај: #dibujo

当前筛选 #dibujo清除筛选
Arte Futura MX

@ArteFuturaMX · Post #321 · 29.03.2021 г., 06:22

#Obras de M. C. Escher: — Otro mundo (1947) — Escalera arriba y escalera abajo (1960) — Torre de Babel (1928) — Bond of Union (1956) — Convexo y cóncavo (1955) — Dragón (1952) — Manos dibujando (1948) — Still Life and Street (1937) — Reptiles (1943) — Casa de escaleras (1951) — Relativity lattice (1953) — Cielo y agua I (1938) — Serpientes (1969) — Estrellas (1948) — Still Life with Spherical Mirror (1934) — Tres mundos (1955) #dibujo#grabado#ArteFuturaMX https://artefutura.com.mx @artefuturamx

Arte Futura MX

@ArteFuturaMX · Post #303 · 29.03.2021 г., 06:20

⁣#Efemérides || 27 de marzo de 1972 #Fallece M. C. Escher. Fue un artista gráfico holandés que realizó xilografías, litografías y mezzotints de inspiración matemática. Su trabajo presenta objetos y operaciones matemáticas que incluyen objetos imposibles, exploraciones del infinito, reflexión, simetría, perspectiva, poliedros truncados y estrellados, geometría hiperbólica y teselaciones. La expresión artística de Escher se creó a partir de imágenes en su mente, en lugar de hacerlo directamente a partir de observaciones y viajes a otros países. Su interés por los múltiples niveles de la realidad en el arte se manifiesta en obras como Dibujando manos (1948), donde se muestran dos manos, cada una dibujando a la otra. El crítico Steven Poole comentó que «es una clara representación de una de las fascinaciones perdurables de Escher: el contraste entre la planitud bidimensional de una hoja de papel y la ilusión de volumen tridimensional que se puede crear con ciertas marcas. En Drawing Hands, el espacio y el plano coexisten, cada uno nacido y regresando al otro, la magia negra de la ilusión artística se manifiesta de manera espeluznante». La forma especial de pensar y los ricos gráficos de Escher han tenido una influencia continua en las matemáticas y el arte, así como en la cultura popular. La propiedad intelectual de Escher está controlada por MC Escher Company, mientras que las exposiciones de sus obras de arte son gestionadas por separado por la Fundación MC Escher. Las principales colecciones institucionales de obras originales de MC Escher son el Museo Escher en La Haya; la Galería Nacional de Arte en Washington, DC; la Galería Nacional de Canadá en Ottawa; el Museo de Israel en Jerusalén; y Huis ten Bosch en Nagasaki, Japón. #Obra: Mano con esfera reflectante de M. C. Escher, 1935. #dibujo#grabado#ArteFuturaMX https://artefutura.com.mx @artefuturamx

Class Cloud☁️

@classcloud · Post #126 · 21.07.2023 г., 11:45

Ilustración de animales con personalidades humanas #dibujo#photoshop#Domestika Descargar Curso Parte1👉: https://www.up-4ever.net/uv0a9nw28ykw Parte2👉: https://www.up-4ever.net/o0zedf0jaze5 Parte3👉: https://www.up-4ever.net/c42wt6jaupmc

Class Cloud☁️

@classcloud · Post #95 · 15.07.2023 г., 11:17

Técnicas narrativas para cómics con alma #dibujo#comics#Domestika Descargar Curso Parte1👉: https://www.up-4ever.net/os5v9e4l3yum Parte2👉: https://www.up-4ever.net/yszlh0lrbqu0 Parte3👉: https://www.up-4ever.net/bgljsktghfq6

Class Cloud☁️

@classcloud · Post #167 · 04.08.2023 г., 11:46

Retratos de Mascotas en Lápices de Colores #dibujo#retrato#Domestika Descargar Curso: Parte1👉: https://www.up-4ever.net/ela3si3xzi7i Parte2👉: https://www.up-4ever.net/ymv3v40lbbno Parte3👉: https://www.up-4ever.net/p844xnsyqsjk Parte4👉: https://www.up-4ever.net/s90825zcz0fq Parte5👉: https://www.up-4ever.net/6dcsvgr2c3dx Parte6👉: https://www.up-4ever.net/t24xds7p2ei9 Parte7👉: https://www.up-4ever.net/39nycldh0k3w

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