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

Резултати

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

Пребарај: #comunicación

当前筛选 #comunicación清除筛选
Ciencia, tecnología y política 🇦🇷

@cienciaytecnologiaarg · Post #792 · 09.03.2019 г., 12:44

#FACEBOOK#WHATSAPP#INSTAGRAM#COMUNICACIÓN ¿Está construyendo Zuckerberg el WeChat de Facebook? Me ha parecido muy interesante el último movimiento de Facebook sobre anuncio de ir hacia un entorno de privacidad. Si lo unimos a movimientos anteriores nos da a entender que es un paso más de querer ser la app imprescindible en nuestras vidas, queramos o no... Las recientes declaraciones de Zuckerberg sobre la orientación de la plataforma hacia la privacidad, parece ser un avance hacia lo ya anunciado hace unos meses sobre la unificación de Whatsapp, Facebook e Instagram como plataforma de mensajería. Pero no sólo parece querer referenciar nuestras comunicaciones. Desde hace un tiempo Facebook está trabajando en un sistema de pago basado en blockchain, en un intento de ser también la pasarela de pago para cualquier tipo de transacción online. Este flujo de datos genera información muy valiosa, ya que el verdadero tesoro son los metadatos de dichas fuentes de comunicación y transacciones. Estas decisiones ya están alertando a legisladores sobre lo que puede suponer tal posición de poder sobre la sociedad. Sus comunicaciones y sus finanzas. Y es que aunque las comunicaciones estén encriptadas, muchos ya alertan sobre los problemas de privacidad como Marta Peirano en Twitter. El principal problema puede llegar a ser la cesión de toda esa información al gobierno que se lo solicite o con el que quiera colaborar como ya hace WeChat en China. Y es que WeChat es una aplicación que tiene ese centro de poder en China. Una aplicación que usaban ya en 2017 unos 980 millones de personas (un dato: la unión de Whatsapp, Instagram y Facebook Messenger serían 2631 millones), y que permite realizar pagos, realizar trámites con el gobierno y casi cualquier cosa que podamos imaginar. Por paralelismo, Facebook está dando pasos para convertirse en el WeChat occidental. 📌 Enlaces - The messy details behind Facebook’s messaging plans http://bit.ly/2VQnPvJ - Facebook: Zuckerberg promete una reconversión de Facebook centrada en la privacidad | Público http://bit.ly/2VJJJjU - Facebook da el primer paso para la gran unificación: así será su bandeja de entrada única para negocios http://bit.ly/2VIGmdd - Facebook Is Said to Develop Stablecoin for WhatsApp Transfers https://bloom.bg/2VKs240 - Facebook can no longer govern itself, UK lawmakers say http://bit.ly/2VJl2nJ - Principales redes sociales globales 2018 http://bit.ly/2VIIjGz - Cómo funcionan los pagos y el envío de dinero en WeChat, la aplicación que todos quieren copiar http://bit.ly/2VEjSdc - How WeChat came to rule China http://bit.ly/2VJmWon - Cómo usar Wechat (o Weixin): La guía completa http://bit.ly/2VMUq5A - Marta Peirano en Twitter http://bit.ly/2VMXyym - Facebook y los Network Effects https://t.me/antonigr/501 - WeChat reconoce compartir los datos de sus usuarios con el gobierno chino http://bit.ly/2VLWFWK - El futuro de FB es muy similar al de la app china WeChat http://bit.ly/2VQh9O9 📌 Info relacionada - Facebook y la democracia https://t.me/antonigr/515 - Facebook y Alemania https://t.me/antonigr/507 - Facebook, Fake News y desinformación https://t.me/antonigr/482

SUBT Salud y Formación

@SUBT_SaludyFormacion · Post #189 · 30.12.2024 г., 07:48

✨ DAR UN FEEDBACK es muy importante, para evitar posibles reacciones malhumoradas 🤬, usa la técnica del sandwich 🥪 ✨ Consiste en tres pasos: - Decir primero algo positivo 🔝🔝 de la persona, especialmente destacable. - Realizar el comentario sobre el aspecto a mejorar o corregir, que generalmente se toma como negativo. - Acabar dando una nota positiva 🆒 sobre ella. ✨ De esta manera la comunicación 📣 se torna más amable y asertiva. #comunicación#feedback#lenguaje #asertividad#coaching#pnl