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

Резултати

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

Пребарај: #noticiatn

当前筛选 #noticiatn清除筛选
Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1209 · 11.08.2021 г., 20:45

#NoticiaTN🏳️‍🌈 La situación del país ha despertado el interés de entidades internacionales como el Fondo de las Naciones Unidas para la Infancia (Unicef), el cual llamó la atención sobre el alarmante aumento de casos positivos en niños y adolescentes en Cuba. 📸 María Lucía Expósito Más información en el siguiente enlace: https://www.tremendanota.com/cuba-covid-19-mas-menores-de-edad-han-sido-afectados-por-la-epidemia/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1184 · 30.07.2021 г., 18:49

Dos mujeres murieron por violencia machista en Guaracabuya, el centro geográfico de Cuba. #NoticiaTN «Las mujeres asesinadas el pasado 25 de julio en Guaracabuya, el pueblo ubicado más cerca del centro geográfico de la isla, se llaman Daniela Cintra y Liena Martín. Daniela, de 23 años, es la hija de Liena, de 43, y ambas fueron víctimas de la violencia machista.» https://www.tremendanota.com/dos-mujeres-murieron-por-la-violencia-machista-en-guaracabuya-el-centro-geografico-de-cuba/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1180 · 28.07.2021 г., 19:46

#NoticiaTN🏳️‍🌈 El Código de las Familias, que debió presentarse en julio a la Asamblea Nacional del Poder Popular, sigue siendo un proyecto legislativo con contenido y plazos de aprobación desconocidos. El pasado 5 de julio, el parlamento cubano informó que la sesión ordinaria correspondiente a este mes quedaba postergada «teniendo en cuenta la compleja situación epidemiológica como resultado de la pandemia de COVID-19». La historia detallada de los plazos postergados, aquí 👇🏼 https://www.tremendanota.com/cuba-el-codigo-de-las-familias-sigue-en-una-espera-sin-plazo-determinado/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1168 · 24.07.2021 г., 23:30

#NoticiaTN Detalles de la política de la Revolución Cubana contra el trabajo sexual en la década de 1960, fueron revelados por el historiador Abel Sierra Madero. https://www.tremendanota.com/cuba-desclasifican-informe-policial-sobre-un-censo-de-trabajadoras-sexuales-y-un-proyecto-para-reeducarlas/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1163 · 23.07.2021 г., 17:29

Decenas de artistas han sus mensajes contra la violencia después del estallido social del pasado 11 de julio en varias localidades de Cuba y la reacción de las fuerzas policiales. #NoticiaTN https://www.tremendanota.com/artistas-cubanos-y-latinoamericanos-condenan-la-violencia-de-las-autoridades-en-cuba/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1114 · 05.07.2021 г., 21:39

Estados Unidos tendrá un pasaporte con otra opción de género, además de los tradicionales masculino y femenino 🇺🇸🏳️‍🌈 #NoticiaTN completa 👇🏻 https://www.tremendanota.com/estados-unidos-tendra-un-pasaporte-con-otra-opcion-de-genero-ademas-de-los-tradicionales-masculino-y-femenino/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1094 · 29.06.2021 г., 22:51

«¿Es esto lo que promueve el Cenesex un día como hoy?», enfatizó la activista Kiriam Gutiérrez Pérez. «Por cosas como estas es que la comunidad LGBTIQA+ de Cuba tiene que organizarse desde el activismo independiente, porque no queremos hoteles, ni discotecas, ni restaurantes, ni bares. Queremos derechos, queremos matrimonio igualitario, queremos reproducción asistida para parejas del mismo sexo, queremos protección para las infancias trans, queremos leyes que penalicen la homofobia y la transfobia, queremos Ley de Identidad de Género, queremos Ley Trans». #NoticiaTN https://www.tremendanota.com/el-activismo-reacciona-ante-la-apertura-del-primer-hotel-lgbtiq-friendly-de-la-habana/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1082 · 28.06.2021 г., 16:24

«En la madrugada del 27 de junio recibimos un ataque de trolls en el grupo de debate en Telegram (http://t.me/Debate11M). El mismo fue reportado por contenido inapropiado publicado por los propios trolls», explicaron los activistas en un comunicado compartido en Twitter y Facebook. #NoticiaTN⚠️ https://www.tremendanota.com/ciberataque-contra-el-activismo-lgbtiq-de-cuba-denuncia-la-plataforma-11m/

Hashtags

Tremenda Nota | Revista marginal

@TremendaNota_Cuba · Post #1081 · 28.06.2021 г., 16:23

#NoticiaTN⚠️⚠️⚠️ El activista y comunicador Héctor Valdés Cocho denunció este domingo haber sido insultado por su orientación sexual y sufrir abusos lascivos mientras se hallaba bajo custodia de la Policía Nacional Revolucionaria (PNR) en una unidad del municipio de 10 de Octubre, en La Habana. https://www.tremendanota.com/cuba-un-reportero-lgbtiq-denuncio-haber-sufrido-abusos-de-caracter-sexual-mientras-se-encontraba-detenido-por-la-policia/

Hashtags

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