Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
✔️Подборка полезных бесплатных курсов и гайдов на выходные.
🖥 Microsoft представила свежий цикл лекций по Python и и ИИ.
• Содержание:Курс включает 9 лекций, дополненных видео, подробными презентациями и примерами кода. Цикла - обучение разработке ИИ-агентов доступен написан понятно, даже для новичков в программирование.
• Темы: В лекциях рассматриваются такие темы, такие как RAG (Retrieval-Augmented Generation), эмбеддинги, агенты и протокол MCP.
👉Курс
💡Гарвардский курс по машинному обучению
Культовый трек CS 249 превратили в интерактивный учебник - и это, пожалуй, один из лучших стартов для инженеров, которые хотят делать реальные ML-системы, а не просто играться с моделями.
• Вся база по ML: объясняют фундамент с нуля, нужно только знание Python
• Проектирование систем и инженерия данных
• Подготовка датасетов, MLOps и мониторинг
• Развёртывание ИИ в IoT и продакшене
Это практический курс: не о формулах, а о том, как внедрять ML так, чтобы он приносил бизнесу прибыль.
Если хочешь понять, как модели живут в проде - идеальный вариант для старта.
👉Курс
🖥Создай своего Bash-агента с NVIDIA Nemotron за 1 час
NVIDIA показала, как собрать AI-агента, который понимает твои запросы на естественном языке и сам выполняет команды Bash.
В основе модель Nemotron Nano 9B v2: компактная, быстрая, идеально подходит для локального эксперимента.
Агент умеет:
- распознавать команды на естественном языке («создай папку», «покажи файлы»),
- превращать эти команды в рабочие Bash-срипты
- спрашивать подтверждение перед выполнением.
Весь код занимает ~200 строк Python, работает через FastAPI и LangGraph.
Можно расширить под DevOps, Git-операции, анализ логов или управление сервером.
👉Гайд
⚡️Kaggle Learn: интерактивные мини-курсы по Python, Data Science и машинному обучению.
Полностью бесплатно и максимально практично.
Что внутри:
• Python, Pandas, визуализация
• Основы машинного обучения и фичеринжиниринг
• Подготовка данных и работа с моделями
Практика без лишней теории учишься и сразу применяешь.
👉Курс
🖥Гайд по шардингу баз данных от PlanetScale
Вы узнаете, как масштабировать базы данных через шардинг - разбиение данных по серверам для роста производительности и отказоустойчивости.
Главное:
• Шардинг нужен, когда одна база больше не справляется с нагрузкой.
• Есть два популярных подхода — по диапазону (range) и по хешу (hash).
• Важно выбрать стабильный ключ (например, user_id) и избегать кросс-шардовых запросов.
• Прокси-слой немного увеличивает задержку, но даёт масштабируемость.
Отличный материал, если хочешь понять, как строят системы уровня YouTube. А здесь много базы по SQL
Читать
🧠60 готовых проектов по генеративному ИИ
Список из 60 проектов на GitHub с открытым кодом по генеративному ИИ 0от текстовых моделей до аудио и видео.
Каждый проект - с описанием и ссылкой на репозиторий. Можно выбрать идею, запустить локально и собрать своё AI-портфолио.
👉Github
👉Еще больше полезного.
@ai_machinelearning_big_data
#AI#MachineLearning#DataScience#ML#ИИ#freecourses
Business English for Hindi-Speaking Professionals
Enhance Communication, Networking, Email Writing, and Presentation Skills for Hindi-Speaking Professionals
⭐ 4.4 | $199.99 Limited FREE
#Language#Teaching#FreeCourses#Udemy#Learning
🆓 Free Udemy coupons:
Master Course : Making the Business Case for Sustainability by Dr. José Prabhu J in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Teaching Methods, Teaching Quality & Teaching Delivery 3.0 by Dr. José Prabhu J in English
🔗Click to get your coupon
🌺🌺🌺
Strategic Public Relations (PR) and Communication Management by Dr. José Prabhu J in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Microsoft Excel - Beginner To Expert by Infidea Trainings , Anjan Banerjee - 22,000 Learners in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Professional Diploma in Executive Assistance and Management by Md. Aliful Islam in English
🔗Click to get your coupon
🌺🌺🌺
Professional Diploma in Project Management by Md. Aliful Islam in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Master Course in Project Management 2.0 by Dr. José Prabhu J in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Master Course in Climate Change Impact on Business by Dr. José Prabhu J in English
🔗Click to get your coupon
🌺🌺🌺
Multigenerational Leadership & Reskilling Your Organization by Dr. José Prabhu J in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Innovative AI Practices in Telemedicine & Virtual Care by Starweaver Team , Paul Siegel , Renate Zara in English
🔗Click to get your coupon
🌺🌺🌺
Storytelling for Financial Advisors and Investment Experts by Starweaver Team , Mark Peco , Globecon Team , Paul Siegel in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Data Visualization: Advanced Storytelling for Sales Success by Starweaver Team , Paul Siegel , Joao Freitas in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
AI-Driven Business Process Modeling by Starweaver Team , Paul Siegel , Manas Dasgupta in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning
🆓 Free Udemy coupons:
Precision Writing: Mastering Business & Technical Style by Starweaver Team , Paul Siegel , Andreas Loizou in English
🔗Click to get your coupon
🌺🌺🌺
🔊 Join Us: @BloomCoupons
🌐 Visit Our Site: https://bloomcoupons.com
#BloomCoupons#FreeCourses#LearnForFree#UdemyCoupons#FreeUdemyCourses#FreeLearning