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

Пребарај: #gsk

当前筛选 #gsk清除筛选
Egountchi Behanzin Officiel

@egountchibehanzinofficiel · Post #7593 · 10.11.2024 г., 13:37

🔴⚠️📢 AFRIQUE : POUR UNE SOUVERAINETÉ SANITAIRE VÉRITABLE ET UNE PROTECTION DES POPULATIONS. Nous appelons nos dirigeants à prendre des mesures urgentes et décisives pour garantir une véritable souveraineté sanitaire sur notre continent. Il est impératif de mettre en place un contrôle strict des programmes de vaccination de l'OMS, souvent financés par des firmes américano-européennes, et de protéger nos populations contre toute forme de manipulation génétique non éthique. Nous exigeons : 1. Une souveraineté sanitaire réelle: Nos systèmes de santé doivent être indépendants et orientés vers les besoins spécifiques de nos populations. L'Afrique ne doit plus être un terrain d'expérimentation pour des programmes financés par des intérêts étrangers. 2.Un contrôle rigoureux des programmes de vaccination: Il est essentiel que nos gouvernements exercent une surveillance stricte sur les vaccins distribués sur notre sol, notamment ceux financés par des multinationales et des organisations privées. Nous devons garantir la sécurité et l'efficacité des vaccins administrés à nos populations. 3. L'interdiction du forçage génétique des moustiques OGM de #BILLGATES (projet Target Malaria) : Ce projet, soutenu par des intérêts extérieurs, représente une menace potentielle pour la biodiversité et la santé des populations. Nos écosystèmes doivent être protégés contre des interventions non maîtrisées. 4. La suspension des vaccins RTS,S de #GSK: Des études ont montré que ces vaccins, financés par la Fondation Bill Gates et soutenus par la #DARPA (Agence américaine de défense), provoquent des effets secondaires graves, notamment la méningite, le paludisme cérébral et une mortalité accrue chez les jeunes filles. Nous demandons une enquête indépendante et une transparence totale sur ces vaccins avant toute nouvelle administration. L'Afrique doit prendre en main son destin sanitaire. Il est temps que nos gouvernements se lèvent pour protéger leurs citoyens et garantir que les décisions en matière de santé publique soient prises dans l'intérêt de nos peuples et non sous l'influence d'acteurs extérieurs. ✊🏿 Pour une Afrique forte, indépendante et en bonne santé ! Rejoignez la résistance sur Telegram @egountchibehanzinTV

Egountchi Behanzin Officiel

@egountchibehanzinofficiel · Post #7607 · 13.11.2024 г., 15:43

AFRIQUE | Un programme secret de stérilisation des femmes Africaines, mis en place par #BillGates, a été découvert. L'UNICEF, l'OMS et la Fondation Bill et Melinda Gates sont accusés d'avoir secrètement stérilisé des millions de femmes en #Afrique avec la complicité de médecins kenyans, après la découverte de médicaments abortifs dans un vaccin contre le tétanos. Ce même Bill Gates est le financier du dangereux vaccin #RTS,S MOSQUIRIX de #GSK, avec des effets graves, notamment une mortalité élevée chez les filles. Des moustiques OGM au Burkina Faso 🇧🇫, Djibouti, Kenya 🇰🇪, Ouganda 🇺🇬 etc… qui propagent le paludisme et la dengue. ⚠️Pourquoi les Africains devraient-ils continuer à faire confiance à des gens qui commettent des crimes de masse ? Plus d’informations sur nos chaînes Telegram | https://t.me/egountchibehanzinTV Pour les numéros français | https://t.me/egountchibehanzinTV