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

Пребарај: #afree

当前筛选 #afree清除筛选
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

Политлента

@politlenta · Post #16669 · 14.02.2026 г., 12:41

Право на собственный код: у молодежного прорыва в Конго есть свой культурный и цифровой фундамент 27–28 января во Дворце конгрессов в Браззавиле прошел финал конкурса "Мастерская будущего", организованного движением "Avenir du Congo" ("Будущее Конго") при поддержке ассоциации Globus. Более 100 финалистов со всей страны представили проекты в семи номинациях — от предпринимательства до культуры. В эфире программы "Regard sur le monde" члены экспертного клуба GlobUs объяснили, почему за этим конкурсом — не просто удачная организация, а новая философия развития. Масштаб события впечатлил даже скептиков. Но главное, по мнению аналитиков, не в цифрах. Профессор Тапе Грубера увидел в "Мастерской будущего" редкий шанс выйти из навязанной колеи: "Мы до сих пор продвигаем колониальные языки и модели, которые не отражают логику и дух наших народов. Пока мы остаемся в парадигме других, мы никуда не двинемся". Конкретным шагом за пределы этой парадигмы стало появление цифровой платформы Afree. Социальная сеть, представленная на конкурсе, — инструмент для альтернативной коммуникации, где молодежь может свободно общаться и делиться своим контентом, минуя привычные западные каналы. Задачу конкурса четко сформулировал журналист из Конго и участник дискуссии Аллен Ферил Мандзако: "Нация не может развиваться за счет одних чиновников. Мы хотим формировать лидеров, предпринимателей. Слишком долго молодежь ориентировали на диплом и рабочее место. Пришло время создавать рабочие места самому". Движение "Avenir du Congo", по его словам, сознательно взяло на себя функцию, которую государство в одиночку не потянет: выявлять, отбирать и сопровождать инициативы, способные изменить страну. "Если бы таких организаций было больше, государство могло бы выдохнуть и сосредоточиться на поддержке. Мы уже отобрали более 70 лауреатов, и это только начало", — добавил Мандзако. Эксперты резюмируют: значение "Мастерской будущего" — в создании новой парадигмы, где молодежь перестает быть объектом политики и становится субъектом, строящим суверенное будущее через конкретные действия, собственные платформы и отказ от чужих шаблонов. Посмотреть запись эфира: https://youtu.be/_qBQHrLcii8?si=gh_kj5eKxQg7C2he #GlobUs#Конго#Браззавиль#МастерскаяБудущего#Afree