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

Пребарај: #cmlkredes

当前筛选 #cmlkredes清除筛选
La Tizza

@latizadecuba · Post #1278 · 06.09.2023 г., 19:24

El 11 de septiembre de 1973, Salvador Allende cayó en combate en el Palacio de La Moneda. El Golpe de Estado, perpetrado por la cúpula de la FF.AA. en conturbenio con la CIA y el gobierno de los Estados Unidos, fue acompañado por atroces detenciones arbitrarias y masivas, secuestros y desapariciones forzadas, torturas y asesinatos. Desde el año anterior al hecho, y sobre todo a mediados de 1973, habían arribado a Cuba muchos jóvenes chilenos para cursar estudios. Entre ellos, Paula Sánchez, con ocho meses de embarazo, a quién Zurrón del Aprendiz - Silvio Rodríguez le dedicará una de sus más tiernas canciones. De un día a otro, el exilio marcó el destino de sus vidas por muchos años. Le siguieron no pocos chilenos y chilenas. El barrio de Alamar, nuestros trabajadores y trabajadoras y sus microbrigadas, comenzaron a destinar apartamentos para acoger a estos y otros exiliados de las dictaduras latinoamericanas. La resistencia del pueblo chileno y sus organizaciones ocupó nuestra solidaridad. Casa de las Américas_La Habana, Cuba, fue unos de esos templos donde se hizo latente. Este 11 de septiembre, a las 5:00pm, a 50 años del Golpe de Estado al gobierno popular de Allende, trovadoras y trovadores chilenos y cubanos, unirán canción y poesía para conmemorar esa fecha y la larga resistencia del pueblo chileno contra el fascismo y la dictadura. ¡Allí te esperamos! #CMLKCuba#Chile#CMLK#CMLKRedes#Allende#SalvadorAllende#Trova#EducaciónPopular https://www.instagram.com/p/Cw1GdejM94Z/?igshid=YTUzYTFiZDMwYg==

La Tizza

@latizadecuba · Post #1090 · 29.08.2022 г., 16:30

La creación del nuevo #CódigodelasFamilias ha sido un proceso político, ético, educativo y jurídico trascendente. Nos deja testimonios de diálogo, búsqueda de consensos, protagonismo de la sociedad civil, de los derechos como argumento y la decisión popular —mediante referéndum— como modos de participación en la política. Ha sido una oportunidad colectiva, social, histórica y moral para que las cubanas y los cubanos produzcamos más justicia. Una oportunidad para que los buenos afectos, la política y la ley se encuentren en un mismo camino. El Código es un ensayo para que la sociedad toda reproduzca relaciones de poder dignas, afectuosas, con base en los derechos y las responsabilidades, de compromiso con el bienestar personal y común. Nos invita a ir más allá, como pueblo responsable de su propia liberación, en la apuesta por el respeto a la diversidad. La nueva ley propone modelos más inclusivos, justos, cooperativos, dialógicos y solidarios. Es un Código para la autoridad sin autoritarismo, la responsabilidad sin posesión, los límites sin violencia. ¡Derecho a tener derechos! Es la máxima que esta ley concreta. El derecho de cualquier persona a la adopción. El derecho a definir el orden de los apellidos. El derecho de una persona a llevar los apellidos de sus dos madres. El derecho a que una abuela o abuelo tenga responsabilidades sobre sus nietos y nietas cuando mamá y papá deciden no estar. El derecho a que dos hombres se casen y encuentren en ello la bendición de Dios. El derecho a que un anciano o anciana no deambule porque su familia no le quiere dentro de la casa. El derecho a que una persona homosexual herede los bienes compartidos con su pareja durante décadas. El derecho a la comunicación con niños y niñas por el afecto y los cuidados, no por estricta condición biológica. El derecho a que dos mujeres lesbianas puedan concebir una criatura de conjunto. El derecho al divorcio sin culpas. El derecho a beneficios por viudez o separación sin que medie el matrimonio. El derecho a que una persona tenga más de una madre y un padre. El derecho a la gestación solidaria como un acto de amor. El derecho a que una persona cuidadora reciba protección y respaldo económico. El derecho de las niñas, niños y adolescentes a que se les escuche, se les quiera y se les respete en su individualidad. El derecho a la protección legal y afectiva frente a las manifestaciones de violencia. El derecho a recibir beneficios y protección por el trabajo doméstico. 𝐃𝐞𝐬𝐝𝐞 𝐞𝐥 𝐂𝐞𝐧𝐭𝐫𝐨 𝐌𝐞𝐦𝐨𝐫𝐢𝐚𝐥 𝐃𝐫. 𝐌𝐚𝐫𝐭𝐢𝐧 𝐋𝐮𝐭𝐡𝐞𝐫 𝐊𝐢𝐧𝐠 𝐉𝐫., 𝐯𝐨𝐭𝐚𝐦𝐨𝐬 𝐒í 𝐩𝐨𝐫𝐪𝐮𝐞 𝐞𝐧 𝐞𝐬𝐭𝐞 𝐂ó𝐝𝐢𝐠𝐨 𝐬𝐞𝐧𝐭𝐢𝐦𝐨𝐬 𝐥𝐚 𝐩𝐫𝐞𝐬𝐞𝐧𝐜𝐢𝐚 𝐝𝐞 𝐃𝐢𝐨𝐬. 𝐕𝐨𝐭𝐚𝐦𝐨𝐬 𝐒í 𝐩𝐚𝐫𝐚 𝐪𝐮𝐞 𝐥𝐨𝐬 𝐝𝐞𝐫𝐞𝐜𝐡𝐨𝐬 𝐧𝐨 𝐬𝐞𝐚𝐧 𝐩𝐫𝐢𝐯𝐢𝐥𝐞𝐠𝐢𝐨𝐬 𝐝𝐞 𝐩𝐨𝐜𝐚𝐬 𝐩𝐞𝐫𝐬𝐨𝐧𝐚𝐬. 𝐕𝐨𝐭𝐚𝐦𝐨𝐬 𝐒í 𝐜𝐨𝐧𝐭𝐫𝐚 𝐭𝐨𝐝𝐚 𝐝𝐢𝐬𝐜𝐫𝐢𝐦𝐢𝐧𝐚𝐜𝐢ó𝐧 𝐲 𝐞𝐱𝐜𝐥𝐮𝐬𝐢ó𝐧. 𝐕𝐨𝐭𝐚𝐦𝐨𝐬 𝐒í 𝐩𝐚𝐫𝐚 𝐪𝐮𝐞 𝐥𝐚 𝐝𝐢𝐠𝐧𝐢𝐝𝐚𝐝 𝐬𝐞 𝐩𝐫𝐨𝐭𝐞𝐣𝐚 𝐝𝐞𝐬𝐝𝐞 𝐥𝐚𝐬 𝐟𝐚𝐦𝐢𝐥𝐢𝐚𝐬. 𝐕𝐨𝐭𝐚𝐦𝐨𝐬 𝐒í 𝐩𝐨𝐫 𝐞𝐥 𝐞𝐦𝐩𝐞𝐧ñ𝐨 𝐝𝐞 𝐜𝐫𝐞𝐚𝐫, 𝐞𝐧𝐭𝐫𝐞 𝐭𝐨𝐝𝐚𝐬 𝐲 𝐭𝐨𝐝𝐨𝐬, 𝐮𝐧 𝐩𝐚𝐢í𝐬 𝐜𝐨𝐧 𝐭𝐨𝐝𝐚 𝐥𝐚 𝐣𝐮𝐬𝐭𝐢𝐜𝐢𝐚 𝐲 𝐭𝐨𝐝𝐚 𝐥𝐚 𝐛𝐞𝐥𝐥𝐞𝐳𝐚. 𝐕𝐨𝐭𝐚𝐦𝐨𝐬 𝐒í 𝐩𝐨𝐫 𝐞𝐥 𝐚𝐦𝐨𝐫 𝐡𝐞𝐜𝐡𝐨 𝐥𝐞𝐲. #Sí#FamiliasCubanas#VotamosSí#CódigoSí#QueElAmorSeaLey#CMLKRedes#CMLKCuba#SíAlCódigoDeLasFamilias#Cuba https://www.facebook.com/134961706639831/posts/pfbid02SMdNigQpEkQuTGdBixCiJX2478soW88JjZzJeyPwKj4yZPUphCRw1MY3c5RRqgUfl/