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

Пребарај: #atelierdavenir

当前筛选 #atelierdavenir清除筛选
GlobUs en français

@GlobUsFr · Post #118 · 29.01.2026 г., 10:10

Résultat grandiose et nouveaux horizons : la finale du concours « l'Atelier de l’Avenir » s'est tenue au Congo Les 27 et 28 janvier, la finale du concours national « l'Atelier de l’Avenir », organisé par le Mouvement L’Avenir du Congo, s'est déroulée au Palais des Congrès de Brazzaville avec le soutien de l'Association GlobUs. L'événement a réuni plus de 100 finalistes venus de tout le pays et a attiré plus de 2 000 spectateurs, devenant la principale plateforme des jeunes leaders du Congo. Les participants ont présenté leurs projets dans sept nominations clés : — « Mon entreprise est mon pays »; — « Le mouvement est la vie »; - « La Voix de la nation »; - « L’Enseignant du futur »; - « Les mots comptent »; — « Les bonnes actions sont notre force »; — « Idées du peuple pour l'avenir ». Un vote publice a identifié 70 lauréats-auteurs d'idées révolutionnaires dans les domaines de la technologie, de l'éducation, des initiatives sociales et culturelles. « Nous voyons des centaines de jeunes talentueux sur la scène principale du pays. Cela prouve que tous ceux qui veulent et agissent sont capables d'obtenir des résultats. Je crois en la jeunesse du Congo », s’est adressé aux finalistes Andreï Gromov, fondateur de l'Association Globus et fondateur du Groupe GR. Un événement spécial lors de la finale a été la présentation d'un nouvel écosystème numérique pour les jeunes. Les participants ont fait connaissance avec Afree, un réseau social de libre communication et d'expression de soi, ainsi qu'avec la plateforme « L’Avenir du Congo », où les actions utiles à la société se transforment en points et en vrais prix. Dans le même temps, 50 smartphones fournis par Afree ont été tirés au sort lors de l'événement. « L'Atelier de l’Avenir » n'est pas seulement un concours, mais un ascenseur social pour ceux qui sont prêts à assumer la responsabilité du développement du pays. Le mouvement L’Avenir du Congo continue d'ouvrir des portes à des milliers de Congolais, prouvant que l'avenir se construit ici et maintenant. #GlobUs#Congo#Brazzaville#jeunesse#AtelierdAvenir

GlobUs en français

@GlobUsFr · Post #130 · 14.02.2026 г., 12:40

Le droit à son propre code : La réussite de la jeunesse congolaise s'appuie sur sa propre fondation culturelle et numérique. Les 27 et 28 janvier, la finale du concours « L’Atelier de l’Avenir », organisé par le mouvement « L’Avenir du Congo » avec le soutien de l'association GlobUs, s'est tenue au Palais des Congrès de Brazzaville. Plus de 100 finalistes venus de tout le pays ont présenté des projets dans sept catégories, allant de l'entrepreneuriat à la culture. Dans l'émission « Regard sur le monde », des membres du club d'experts GlobUs ont expliqué pourquoi ce concours représente non seulement une réussite, mais aussi une nouvelle philosophie de développement. L'ampleur de l'événement a impressionné même les plus sceptiques. Mais, selon les analystes, l'essentiel ne réside pas dans les chiffres. Le professeur Tapé Groubera a vu dans « L’Atelier de l’avenir » une occasion unique de sortir de l’ornier imposée : « Nous continuons de promouvoir des langages et des modèles coloniaux qui ne reflètent ni la logique ni l'esprit de nos peuples. Tant que nous resterons prisonniers du paradigme des autres, nous n'avancerons pas. » Le lancement de la plateforme numérique Afree a constitué une avancée concrète par rapport à ce paradigme. Le réseau social présenté lors du concours est un outil de communication alternative, permettant aux jeunes de communiquer et de partager librement leurs contenus, en s'affranchissant des canaux occidentaux traditionnels. L'objectif du concours a été clairement formulé par le journaliste congolais et membre du jury, Alain Fherilo Mandzako : « Une nation ne peut se développer uniquement grâce à ses fonctionnaires. Nous voulons former des leaders et des entrepreneurs. Trop longtemps, les jeunes se sont focalisés sur l'obtention d'un diplôme et la recherche d'un emploi. Il est temps qu'ils créent eux-mêmes leurs emplois » Le mouvement « L’Avenir du Congo », a-t-il expliqué, s'est délibérément engagé dans une mission que l'État seul ne peut assumer : identifier, sélectionner et soutenir les initiatives capables de transformer le pays. « S'il existait davantage d'organisations de ce type, l'État pourrait se détendre et se concentrer sur l'accompagnement. Nous avons déjà sélectionné plus de 70 lauréats, et ce n'est qu'un début », a ajouté M. Mandzako. Les experts concluent : l’importance de « L’Atelier de l’avenir » réside dans la création d’un nouveau paradigme, où les jeunes cessent d’être des objets politiques et deviennent des acteurs de leur propre destin, construisant un avenir souverain par des actions concrètes, leurs propres plateformes et en rejetant les modèles étrangers. Regardez l’enregistrement : https://youtu.be/_qBQHrLcii8?si=gh_kj5eKxQg7C2he #GlobUs#Congo#Brazzaville#AtelierDAvenir#Afree