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

Резултати

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

Пребарај: #bernhardhaitink

当前筛选 #bernhardhaitink清除筛选
🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #7171 · 23.05.2025 г., 18:00

#SinfoníaDoMayor#Bizet#BernhardHaitink Título:La Sinfonía en Do mayor Autor:Georges Bizet Movimientos: 🎵 00:00 I. Allegro vivo 🎵10:52 II. Andante. Adagio 🎵 20:26 III. Allegro vivace 🎵 25:55 IV. Finale. Allegro vivace Interpretación: La Orquesta Real del Concertgebouw Director: Bernhard Haitink Fuente: 🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #7170 · 23.05.2025 г., 18:00

​​#SinfoníaDoMayor#Bizet#BernhardHaitink LA SINFONÍA EN DO MAYOR. La Sinfonía en do mayor es uno de los primeros trabajos del compositor francés Georges Bizet. De acuerdo al Diccionario de Grove, la sinfonía "revela un logrado talento extraordinario para un estudiante de 17 años de edad, en invención melódica, manejo temático y orquestación." Bizet comenzó a trabajar en la sinfonía el 29 de octubre de 1855, cuatro días después de cumplir los 17, y la finalizó más o menos un es después. Fue escrita mientras estudiaba en el Conservatorio de París bajo la tutela del compositor Charles Gounod, y era obviamente una tarea estudiantil. Bizet no mostró interés aparente en que fuese ejecutada o publicada, y aunque utilizó algún material de la sinfonía en trabajos posteriores, la pieza jamás fue ejecutada en toda su vida. No existe mención de este trabajo en las cartas de Bizet, y era desconocida para sus primeros biógrafos. Su viuda, Geneviève Halévy (1849–1926), dio el manuscrito a Reynaldo Hahn, quien lo dejó junto a otros documentos en los archivos de la librería del conservatorio, donde fue encontrado en 1933 por Jean Chantavoine. Poco tiempo después, el primer biógrafo Inglés de Bizet, Douglas Charles Parker (1885–1970) mostró el manuscrito al director de orquesta Felix von Weingartner, quien hizo la primera presentación en Basel, Suiza, el 26 de febrero de 1935. La sinfonía fue inmediatamente aclamada como una obras maestra juvenil, comparable a la obertura El sueño de una noche de verano de Felix Mendelssohn, escrita más o menos a la misma edad, y rápidamente se convirtió en parte del repertorio Romántico habitual. La primera grabación fue hecha el 26 de noviembre de 1937, por la Orquesta Filarmónica de Londres, dirigida por Walter Goehr. Escrito para una orquesta convencional (sin trombones), el trabajo sigue muy de cerca la forma sinfónica clásica de cuatro movimientos. El primero y el último movimiento están en forma de sonata. Consta de cuatro movimientos: 🎵I. Allegro vivo 🎵II. Andante. Adagio 🎵III. Allegro vivace 🎵IV. Finale. Allegro vivace Existe una extendida suposición de que la sinfonía fue una tarea estudiantil, escrita hacia el final de los nueve años de estudio que realizó Bizet en el Conservatorio de París. En el conservatorio, Bizet fue influenciado de gran manera por Charles Gounod,tuvo un fuerte impacto en el joven compositor. @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5045 · 02.06.2021 г., 17:23

#SinfoníaDoMayor#Bizet#BernhardHaitink Título:La Sinfonía en Do mayor Autor:Georges Bizet Movimientos: 🎵 00:00 I. Allegro vivo 🎵10:52 II. Andante. Adagio 🎵 20:26 III. Allegro vivace 🎵 25:55 IV. Finale. Allegro vivace Interpretación: La Orquesta Real del Concertgebouw Director: Bernhard Haitink Fuente: 🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5044 · 02.06.2021 г., 17:23

​​#SinfoníaDoMayor#Bizet#BernhardHaitink LA SINFONÍA EN DO MAYOR. La Sinfonía en do mayor es uno de los primeros trabajos del compositor francés Georges Bizet. De acuerdo al Diccionario de Grove, la sinfonía "revela un logrado talento extraordinario para un estudiante de 17 años de edad, en invención melódica, manejo temático y orquestación." Bizet comenzó a trabajar en la sinfonía el 29 de octubre de 1855, cuatro días después de cumplir los 17, y la finalizó más o menos un es después. Fue escrita mientras estudiaba en el Conservatorio de París bajo la tutela del compositor Charles Gounod, y era obviamente una tarea estudiantil. Bizet no mostró interés aparente en que fuese ejecutada o publicada, y aunque utilizó algún material de la sinfonía en trabajos posteriores, la pieza jamás fue ejecutada en toda su vida. No existe mención de este trabajo en las cartas de Bizet, y era desconocida para sus primeros biógrafos. Su viuda, Geneviève Halévy (1849–1926), dio el manuscrito a Reynaldo Hahn, quien lo dejó junto a otros documentos en los archivos de la librería del conservatorio, donde fue encontrado en 1933 por Jean Chantavoine. Poco tiempo después, el primer biógrafo Inglés de Bizet, Douglas Charles Parker (1885–1970) mostró el manuscrito al director de orquesta Felix von Weingartner, quien hizo la primera presentación en Basel, Suiza, el 26 de febrero de 1935. La sinfonía fue inmediatamente aclamada como una obras maestra juvenil, comparable a la obertura El sueño de una noche de verano de Felix Mendelssohn, escrita más o menos a la misma edad, y rápidamente se convirtió en parte del repertorio Romántico habitual. La primera grabación fue hecha el 26 de noviembre de 1937, por la Orquesta Filarmónica de Londres, dirigida por Walter Goehr. Escrito para una orquesta convencional (sin trombones), el trabajo sigue muy de cerca la forma sinfónica clásica de cuatro movimientos. El primero y el último movimiento están en forma de sonata. Consta de cuatro movimientos: 🎵I. Allegro vivo 🎵II. Andante. Adagio 🎵III. Allegro vivace 🎵IV. Finale. Allegro vivace Existe una extendida suposición de que la sinfonía fue una tarea estudiantil, escrita hacia el final de los nueve años de estudio que realizó Bizet en el Conservatorio de París. En el conservatorio, Bizet fue influenciado de gran manera por Charles Gounod,tuvo un fuerte impacto en el joven compositor. @ClasicaAlAtardecer