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

Резултати

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

Пребарај: #entretenimiento

当前筛选 #entretenimiento清除筛选
La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10486 · 04.05.2026 г., 16:14

Cada 4 de mayo, el universo de Star Wars encuentra su propia fecha en el calendario, casi como un guiño cómplice entre fans. ¿El motivo? Un juego de palabras tan simple como brillante: “Que la Fuerza te acompañe” (May the Force be with you) y “Que el 4 de mayo te acompañe” (May the Fourth be with you) 🎬 Una coincidencia que terminó convirtiéndose en tradición, donde la Fuerza no solo acompaña… también celebra. Desde generaciones que crecieron con Luke Skywalker hasta quienes descubrieron la saga en nuevas trilogías, este día es un punto de encuentro para todos los que alguna vez miraron al cielo imaginando otras galaxias ✨ #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10475 · 02.05.2026 г., 13:46

El universo de Game of Thrones no se detiene, y la pantalla se incendia una vez más con el nuevo trailer de la tercera entrega de House of the Dragon. Estreno 21 de junio. 😱 #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10458 · 28.04.2026 г., 00:55

🕸️ La próxima serie del universo de Spider-Man, Spider-Noir revela a Nicolas Cage en acción en un nuevo y explosivo adelanto. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10416 · 18.04.2026 г., 18:05

Maravilloso... Mel Brooks vuelve a dirigir Spaceballs con 99 años. El estreno será en 2027 y regresa todo el elenco original. Incluido el gran Rick Moranis, que retorna a la actuación luego de 20 años. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10414 · 16.04.2026 г., 23:48

Anthony Starr y Karl Urban trabajan desde hace años pero ganaron un reconocimiento internacional por The Boys, aunque sus primeros pasos fue en la serie Xena a medidados de los 90 donde interpretaron a David y Cupido #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10413 · 16.04.2026 г., 23:46

El 16 de abril de 1988 se estrenó en Japón la película dirigida por Hayao Miyazaki y producida por Studio Ghibli. La historia siguió a dos hermanas que se mudan al campo y entablan vínculo con criaturas del bosque, entre ellas Totoro, figura central del film. La obra destacó por su tono contemplativo, su enfoque en la infancia y una animación detallada que contrastó con otras producciones de la época. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10411 · 16.04.2026 г., 12:13

🫣🎥Les compartimos el tráiler de Colony (título coreano: 군체 - Gunche) La historia sigue a la profesora Se Jeong (interpretada por Jun Ji-hyun) durante una conferencia de biotecnología que se convierte en una pesadilla cuando se desata un virus zombi mutante. El edificio es sellado, atrapando a sobrevivientes e infectados por igual. Dirigida por Yeon Sang-ho (el genio detrás de Train to Busan), está siendo considerada como uno de los estrenos más grandes de 2026. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10344 · 28.03.2026 г., 23:28

Nadie quería darle un papel de comedia a Arnold Schwarzenegger. Así que se juntó con Danny DeVito y el director Ivan Reitman para hacer Gemelos (1988), aceptando no cobrar por adelantado y compartir el 40% de las ganancias. Schwarzenegger ganó más de $40 millones con la película, su mayor ganancia de una sola película. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10343 · 28.03.2026 г., 12:55

🎬 Anne Hathaway y Ewan McGregor protagonizan el primer trailer de El Final de la Calle Oak, una nueva apuesta de ciencia ficción de J. J. Abrams. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10312 · 20.03.2026 г., 13:13

Esto es lo que usan los dobles de acción cuando se prenden fuego en las películas. Se llama fire hire un gel retardante que crea una película protectora sobre la piel #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

La Neurona Curiosa 🧠

@laneuronacuriosa · Post #10302 · 17.03.2026 г., 00:49

Sabías que ell diseño original de Voldemort se descartó porque lo consideraron demasiado aterrador y potencialmente traumático para los niños ? Hubiesen dejado el prototipo original. #entretenimiento Síguenos para más curiosidades 👉@laneuronacuriosa👈

123•••89
ПретходнаСтраница 1 од 9Следна