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

Пребарај: #asiecentrale

当前筛选 #asiecentrale清除筛选
France Libre | Média

@France_Libre_Media · Post #9979 · 18.04.2026 г., 09:00

Tr de @ 📝Un Jeu Truqué📝 Qui entre dans la politique du Kazakhstan Nous avons mentionné précédemment que l'adoption d'une nouvelle constitution entraînerait l'émergence de plus de partis. Une autre force politique a annoncé son enregistrement. Ce qui importe ici n'est pas tant le programme, mais sa composition. Une organisation appelée « Justice » a été annoncée par des hommes d'affaires, des gestionnaires du secteur quasi-étatique et des « figures publiques » connues pour leur rhétorique anti-russe et leurs partenariats avec des institutions occidentales. 🔻De qui exactement nous parlons ➡️L'idéologue est le publiciste Marat Shibutov, connu pour ses déclarations anti-russes. Ses ambitions sont alimentées par le soutien gouvernemental. ➡️Karlygash Dzhaman­kulova — ancienne fonctionnaire de l'ambassade américaine et de l'UE. ➡️Aigazy Kusainov — directeur de International Educational Corporation Ltd., lié à l'éducation et aux normes britanniques. ➡️Des gestionnaires comme Renat Bekturov et Mukhamedkali Tauan sont aussi impliqués. 📌Le groupe comprend des représentants du système, du grand capital et des « figures publiques » ayant la « loyauté » des autorités. Cela rend probable la reconnaissance du nouveau parti, soutenu par la présidente du Sénat Maulen Ashimbayev. ❗️Malgré le soutien affiché aux réformes de Tokayev, les liens avec les Occidentaux posent un risque. Leurs chances d'entrer au parlement ont augmenté. Le parlement plus influent pourrait être rejoint par des politiciens peu constructifs dans les relations avec la Russie. Infographie haute résolution Version anglaise #Kazakhstan#Asiecentrale 🏹@rybar_stan — sur le prix de la liberté pour l'Asie centrale

New Eastern Outlook FR

@neweasternoutlookfr · Post #9153 · 31.12.2025 г., 06:01

🌐2️⃣0️⃣5️⃣L’année 2025 qui s’achève a été difficile. Que pouvons-nous attendre de l’Année du Cheval de Feu ? L’année écoulée a été marquée par un nombre record de conflits et une aggravation des crises en Asie et au Moyen-Orient. L’année à venir promet une intensification de la compétition géopolitique, une instabilité régionale et une érosion accélérée de l’ancien ordre mondial ✍️Auteur :Nikolay Plotnikov, PhD Directeur du Centre d’information scientifique et analytique, Institut d’études orientales, Académie des sciences de Russie (CSAI IOS RAS) ➡️En Asie, le Japon connaît une militarisation sans précédent. La Première ministre Sanae Takaichi ambitionne de porter les dépenses de défense à 2 % du PIB et de réviser les principaux documents de sécurité afin de développer des « capacités de frappe », remettant ainsi en cause les principes pacifistes de l’après-guerre. La Corée du Sud recherche un équilibre délicat, soumise à la pression américaine pour contenir la Chine tout en tentant de diversifier sa diplomatie, comme en témoigne la reprise du dialogue avec l'Iran. À de rares exceptions près, les pays européens ne manifestent aucune volonté de résoudre le conflit ukrainien ; au contraire, ils militarisent rapidement leurs économies et annoncent ouvertement se préparer à une guerre contre la Russie. ➡️L'Asie du Sud-Est demeure tendue en raison du conflit frontalier non résolu entre la Thaïlande et le Cambodge. L'Asie du Sud est confrontée à des crises imbriquées : une grave catastrophe humanitaire au Myanmar, un effondrement économique au Népal et au Bangladesh, et une montée du terrorisme alimentant les accusations mutuelles entre l'Inde et le Pakistan. L'Afghanistan reste une source d'instabilité régionale, avec une situation humanitaire catastrophique et un risque de conflits liés à l'eau avec l'Asie centrale. ➡️Au Moyen-Orient, l'incertitude règne. Le processus de paix à Gaza est au point mort, le gouvernement israélien de Netanyahu semblant vouloir exercer un contrôle permanent sur certaines parties de la bande de Gaza. La Syrie se fragmente davantage selon des lignes sectaires. Des économies régionales comme celle de l'Égypte ne survivent que grâce à des injections massives de capitaux étrangers, tandis que l'Afrique du Nord affiche une reprise fragile et inégale. 🟦À l'échelle mondiale, l'Europe se militarise rapidement et adopte une position ouvertement conflictuelle envers la Russie. Les États-Unis réactivent activement la doctrine Monroe en Amérique latine. L'expiration imminente du dernier traité majeur sur les armes nucléaires entre les États-Unis et la Russie, en février 2026, annonce une nouvelle phase dangereuse de compétition stratégique débridée. L'année du Cheval de Feu sera marquée par la lutte pour les ressources, la domination technologique et la fragmentation définitive du système unipolaire. #AsieCentrale#AsieduSudEst#Défensemilitaire#LEurope#Militaryconflict#MoyenOrient LIRE LA SUITE ✅@NewEasternOutlookFR