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

Пребарај: #etatsunis

当前筛选 #etatsunis清除筛选
AES INFO

@aesinfos · Post #2593 · 24.02.2025 г., 22:09

#AESinfos | #Mali🇲🇱#EtatsUnis🇺🇸 Supposées subventions américaines et financement du terrorisme international : Le Ministère des Affaires Étrangères et de la Coopération Internationale communique et invite les autorités américaines à engager des poursuites judiciaires. Source : @MaliMaeci

MALI 24

@kamissokosekou3 · Post #36726 · 28.04.2026 г., 13:42

Les États-Unis continuent de détruire des bateaux avec leur équipage dans le Pacifique... 🌊🚢💥 Cette fois, trois personnes ont été tuées, selon le Commandement central (CENTCOM) des États-Unis, l'équipage transportant de la drogue. S'il y avait de la drogue sur le bateau coulé, il n'est plus possible de vérifier comme d'habitude. 🚫 #etatsUnis#détruire#bateaux#pacifique

Egountchi Behanzin Officiel

@egountchibehanzinOfficiel · Post #6798 · 25.07.2024 г., 15:58

☢️ Terrorisme sanitaire ☢️ : Burkina Faso 🇧🇫 Nous appelons les autorités à mettre fin au projet des moustiques OGM génétiquement modifiés de Target Malaria financé par la Fondation Bill et Melinda Gates et l’armée américaine 🇺🇸,en raison du danger et des risques pour les populations et la biodiversité. Au Burkina Faso, l’'agence ANB, qui a délivré l'autorisation pour les lâchers de moustiques, a été mandatée par le CSIRO ( Commonwealth Scientific and Industrial Research Organisation ) basé en Australie, et que cette même organisation participe au projet de forçage génétique "Safe Genes" financé par la DARPA ( l'Agence américaine de recherche avancée de l'armée américaine ) Or, la loi burkinabé de biosécurité stipule également que « toute personne physique ou morale ayant des intérêts directs quelconques aux travaux d'organismes génétiquement modifiés, ne peut participer à l'évaluation des risques relatifs à ces organismes modifiés » (Loi N° 064-2012/AN 2012, article 26). La DARPA finance aussi Target Malaria (Target Malaria a). La CSIRO participe aussi au programme GBIRd (Contrôle biologique génétique des rongeurs invasifs) et fait la promotion du forçage génétique pour les rongeurs auprès de diverses agences gouvernementales. Question : Pourquoi la DARPA, connue pour développer des armes biologiques de l’armée américaine 🇺🇸, financerait un projet impliquant la libération de moustiques dans des pays africains, notamment le Burkina Faso ? Même le Congrès américain, inquiet, a demandé des explications à la DARPA concernant ce financement. #EB#Darpa#EtatsUnis#targetmalaria#BillGates#Oms#Afrique @egountchibehanzin