Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
#новости#mirracoin
05 марта в Галерее искусств SNEGпрошла лекция-дискуссия на тему «Эволюция NFT: искусство в эпоху Web 3.0 технологий».
Говорили на тему NFT, возможностях и перспективах технологии в России, обсудили предстоящие проекты.
Особое внимание уделили международному проекту Art unites the world: Ways of Spirit для которого создана онлайн-версия с возможностью генерации подарочных nft.
Решение реализовано при поддержке компании Mirra Technology на блокчейн-платформе mirraCoin.
Посетить страницу проекта можно по ссылке.
@MirraChannel😎
#mirracoin#новости
Видео трансляции
12.06.2023
В наборе сервисов платформы mirracoin.io появилась возможность проведения видеоконференций. Безопасные и шифрованные трансляции уже доступны на портале. Сервис доступен без ограничений и совершенно бесплатно!
ссылка на инструкцию и страницу сервиса
@MirraChannel
#mirracoin#новости
Нейронная сеть
03.03.2022
В инфраструктуры платформы внедрены технологии нейронных сетей для реализации творческих проектов и решения бизнес-задач
@MirraChannel
#mirracoin#образование
Образовательные курсы на портале mirracoin.io
Важно напомнить ‼️, что на нашем портале можно купить образовательные курсы для повышения ваших профессиональных навыков и личного роста. Мы собрали лучших экспертов в области цифровой грамотности.
Озакомиться с актуальными программами курсов можно по ссылке
@MirraChannel
#крипто#mirracoin#база
Алгоритм консенсуса Proof-of-Authority (PoA)
Алгоритм консенсуса - это правила, по которым происходит генерация блоков в блокчейне. Этот механизм гарантирует, что ни один из участников сети не сможет самопроизвольно изменить данные в реестре.
Как следует из названия, PoA - алгоритм консенсуса, основанный на авторитете выбранных валидаторов. Расшифровывается как "доказательство полномочий". Транзакции проверяются заранее утвержденными участниками, которые выступают в качестве модераторов системы.
В отличие от других алгоритмов, таких как PoW (доказательство работы) или PoS (доказательство доли), PoA устраняет необходимость в сложных математических вычислениях или больших объемах вычислительной мощности.
Компания Mirra Technology в своей блокчейн-сети MirraCoin применяет уникальный алгоритм консенсуса Proof of Authority on Time (PoAoT), который наряду с преимуществами базового решения имеет систему доверенных узлов с гарантированной валидацией транзакций и полным отсутствием комиссий ‼️. Время генерации блоков ~3 секунды - это позволяет обрабатывать транзакции быстро и в большом количестве.
@MirraChannel😎
#mirracoin#nft#база
Что такое NFT?
Этот вид криптографического токена получил особую популярность ввиду особенной характеристики - невзаимозаменяемости.
Простыми словами, nft - это цифровой актив (как ценная бумага) в виде записи в цепочке блоков, представляющей собой постоянный реестр, к которому можно получить доступ с любого компьютера по всему миру.
А невзаимозаменяемость означает уникальность данного цифрового актива.
Таким образом, можно проверить доказательство владения цифровым активом, сверив его с реестром, который делает практически невозможным фальсификацию информации, потому что все компьютеры сверяют эти данные друг с другом.
На портале mirracoin.io доступен каталог nft-проектов созданных в сети MirraCoin.
@MirraChannel
#mirracoin#новости#nft
NFTобученные художественному стилю
03.08.2023
Добавили возможность генерации nft, основанных на генетике художника Okuda San Miguel *
* Окуда Сан Мигель — испанский художник и скульптор, известный характерным стилем красочных геометрических узоров, изображающих животных, черепа, религиозную иконографию и человеческие фигуры. Наиболее известен своей росписью храма Каос в Льянере, Астурия, Испания.
@MirraChannel
АРС-ПРЕСС, MIRRACOIN И РАКИБ запускают масштабную программу по внедрению блокчейна в российскую медиасферу
Альянс руководителей региональных СМИ России (АРС-ПРЕСС), блокчейн-платформа MirraCoin при стратегическом партнерстве с Ассоциацией разработчиков и пользователей технологии блокчейн и систем искусственного интеллекта (РАКИБ) объявляют о старте комплексной программы сотрудничества. Проект направлен на интеграцию передовых распределенных технологий в медийную экосистему России, создание новой инфраструктуры доверия и защиту интеллектуальной собственности.
Читать: https://arspress.ru/2025/12/26/34662/.
#АРСПРЕСС#MirraCoin#РАКИБ#Блокчейн
#newyear_2025#mirracoin
🎄Говорят, в новогоднюю ночь происходят чудеса...
Давным-давно, когда первые блоки только начинали появляться в децентрализованных сетях, создатели Web3 загадали желание: чтобы транзакции были быстрыми, смарт-контракты безопасными, а сообщества — сильными и сплоченными. И с тех пор каждый год те, кто строит будущее с Web3, получают мощные технологии, поддержку сообщества и уверенность в децентрализованном завтрашнем дне.
Друзья, поздравляем вас с Новым годом! Пусть 2025 год станет годом новых возможностей, открытий и прогресса. Пусть ваши DAO процветают, NFT становятся шедеврами, а проекты на блокчейне покоряют новые вершины. Мы будем рядом, чтобы поддерживать вас в этом пути к децентрализованному будущему.
Спасибо, что вы с нами. Успехов, радости и вдохновения! Пусть новогодние чудеса продолжаются в каждом блоке, каждом смарт-контракте и каждом вашем достижении.
Ваш mirracoin.io🥳
___________
@MirraChannel😎
#блокчейн#искусство#mirracoin
Проект «Искусство объединяет мир. Безграничный Пушкин» был представлен на Форуме «Новая экономическая политика 2.0: от адаптации к рывку»
Мероприятие было посвящено анализу вызовов и возможностей для российской экономики в условиях геополитической неопределенности и стремительной цифровизации.
Организатором круглого стола выступила Кафедра операционного и отраслевого менеджмента Факультета «Высшая школа управления» Финансового университета при Правительстве РФ.
Ссылка на источник
☄️ Проект «Искусство объединяет мир. Безграничный Пушкин» на блокчейн-платформе SNEG by Mirracoin.
___________
@MirraChannel😎