Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
🔥 Горячие новости! В ассортименте #AECO новинка - AGM-аккумулятор JM12-100 (12 Вольт 100 Ач). Протестировали его и не поверили своим глазам 👀 подробнее в нашем ролике 👇
https://www.youtube.com/watch?v=uYnf50zkarQ
⚡️ Продолжаем испытывать на выносливость карбоновый #аккумулятор#AECO JPC12-100. На этот раз мы решили зарядить его прямо в морозилке при -20 градусах 😱 Есть ли у нас теперь холодильник, узнаете в этом ролике 👇
https://www.youtube.com/watch?v=dA3-XND_EpY
❓ Нас часто спрашивают: можно ли эксплуатировать карбоновый аккумулятор в мороз, при низкой температуре -20°C ? Решили провести эксперимент и заморозить #аккумулятор#AECO JPC12-100. Что из этого получилось смотрите в этом ролике. 👇
https://www.youtube.com/watch?v=kWKfB4bn5g4
🔥Почему горят солнечные станции?
В новостях всё чаще появляются кадры с возгораниями — и тут закономерный вопрос: насколько безопасна альтернативная энергетика? 🤔
🧨 Главная причина пожаров
Не столько «плохая сборка», сколько самый маленький и, возможно, самый дешёвый элемент — MC4‑коннекторы (разъёмы) 🔌
ℹ️Коротко про MC4
MC4 — стандартные PV‑разъёмы для солнечных модулей. Сегодня на рынке много «MC4‑совместимых» вариантов, но это важно понимать:
⚠️«Совместимый» не равно «безопасный»
Да, разные модели могут физически защёлкнуться 🧩, но это не означает надёжную работу пары. Несертифицированные сочетания приводят к перегревам и пожарам 🔥
📚 Об этом — новое масштабное исследование: какие соединения допустимы, какие — нет, и почему «раз вошло — значит подходит» не работает 🚫
👉Прочитать статью: https://shop.a.eco/blog/news/pochemu-goryat-solnechnye-stantsii/
#AECO#солнечнаяэнергетика#MC4#безопасность
🌞Когда фасад вашего дома становится источником энергии!
Представьте, что ваш загородный дом не только выглядит стильно, но и сам производит электричество. Для нашего клиента из Московской области это стало реальностью благодаря установке сетевой солнечной электростанции мощностью 4,5 кВт на фасаде его дома.
🚀Почему это важно?
✅ Энергия солнца круглый год: панели эффективны даже в средней полосе.
✅ Экономия на электричестве: меньше счетов — больше свободы.
✅ Забота об экологии: солнечная энергия сокращает углеродный след.
🎥 В отзыве наш клиент делится тем:
- Как прошла установка;
- Какие результаты он получил;
- Почему выбрал A.ECO.
Не пропустите видео — вдохновитесь примером!
🌟 Мы в A.ECO уверены: солнечная энергия — это будущее!
Готовы сделать ваш дом источником энергии?
📞 8 (800) 500-01-07
✉️ [email protected]
#AECO#Проект#солнечныебатареи#солнечныепанели#солнечнаяэлектростанция
⚡ Мы рады рассказать о запуске нового проекта — сетевой солнечной электростанции мощностью 15 кВт для объекта в живописном селе Архипо-Осиповка Краснодарского края.
Для гостиницы "Жемчужина" переход на солнечные панели не только способствует сокращению расходов на электроэнергию, но и повышает её привлекательность для экологически ориентированных туристов.
Сетевая солнечная электростанция мощностью 15 кВт была спроектирована с учетом всех особенностей гостиничного комплекса и региона, что позволяет максимально эффективно использовать солнечную энергию в любое время года. Мы использовали только лучшие компоненты и передовые технологии, чтобы обеспечить высокую производительность и долгосрочную надежность системы.
Сетевая солнечная электростанция, Краснодарский край
Мощность: 15 кВт
Стоимость: 1 млн. 184 тыс. рублей
Для заказа и консультации:
Звоните: 8 (800) 500-01-07
Пишите: [email protected]
#AECO#Проект#солнечныебатареи#солнечныепанели#солнечнаяэлектростанция
❓А вы знали, что солнечные батареи можно использовать не только по прямому назначению - для выработки бесплатной электроэнергии, - но и в качестве декора? На днях специалисты группы компаний A.ECO реализовали подобный проект. Теперь этот дом не только обеспечивает себя бесплатным электричеством, но и привлекает внимание своим футуристичным экстерьером.
Сетевая солнечная электростанция, Московская область
Мощность: 6 кВт
Для заказа и консультации:
Звоните: 8 (800) 500-01-07
Пишите: [email protected]
#AECO#Проект#солнечныебатареи#солнечныепанели#солнечнаяэлектростанция
На днях мы приняли участие в межрегиональном промышленно-энергетическом форуме Пром-Энерго-Volga'2023, наряду с такими компаниями как Лукойл, Газпром, Ритэк, РЖД, Северсталь Метиз, E-Prom, Парус Энерго и многими другими. Подготовили для вас небольшой репортаж о выставке 👇
#aeco#промэнерговолга#выставка#солнечныеэлектростанции#аккумуляторы
https://www.youtube.com/watch?v=t0ibdf1BzQc
Дорогие друзья, у нас замечательная новость! 🎉 Наш дружный коллектив группы компаний "A.ECO" вновь отправился в ежегодное корпоративное путешествие, и в этом году мы выбрали великолепный Дагестан.
Эти дни были наполнены яркими впечатлениями и незабываемыми моментами. Мы любовались потрясающими природными пейзажами, покоряли горные вершины, сплавлялись на катерах по бурным рекам и просто наслаждались каждым моментом вместе.
Такие поездки помогают нам не только отдохнуть и зарядиться энергией, но и укрепить командный дух, наладить межличностные связи и вдохновиться на достижение общих целей. Ведь вместе мы можем достичь любых высот!
Спасибо всем, кто был с нами в этом удивительном путешествии. С нетерпением ждем следующего года и новых приключений! 🌟
#AECO#Дагестан#КомандныйДух#Природа#Вдохновение
❓ Как экономить на платежах за электроэнергию, если тарифы регулярно повышаются? Как сократить зависимость от энергосбыта? У нас есть ответ!
Подробнее в новом видео 👇
#AECO#солнечныебатареи#солнечныепанели#солнечнаяэлектростанция#экономия#инвестиции
https://youtu.be/OsLO0W3tp1Q
🍇☀️ Когда солнце знает толк в вине
В Абрау-Дюрсо теперь выдерживается не только вино, но и энергия.
Мы в A.ECO запустили солнечную электростанцию для винодельни «Юбилейная» — проект, где солнце работает так же стабильно, как хороший винный погреб.
⚡Мощность: 105 кВт чистого солнца
🔆ФЭМ: Seraphim 540 W — 196 шт.
🎛Инверторы: DEYE 50 kW — 2 шт.
🛜Мониторинг: да, всё под контролем
🚫Ограничение экспорта: да
🗝️Формат: «под ключ»
📊Окупаемость: ~3,5 года
🍾Итог простой: солнце снижает счета, бизнес получает устойчивость, а экология — плюс в карму.
🌱A.ECO — энергия, которая работает на бизнес сегодня и окупается в будущем.
Хочешь так же?
📞Звони: 8 (800) 500-01-07
📧Пиши: [email protected]
🛒Покупай: shop.a.eco
#aeco#солнечныебатареи#солнечнаяэлектростанция#сэсдлябизнеса#альтернативнаяэнергия
⚡Новинка от A.ECO — сетевые инверторы RENAC!
🌍RENAC Power — мировой игрок с более чем 15‑летним опытом в солнечной энергетике. Инверторы RENAC уже работают в 30+ странах и зарекомендовали себя как надёжные и технологичные решения для частных домов и бизнеса.
🚀Почему RENAC — выбор профессионалов?
✅ КПД до 98,8%
✅ Мощности от 3 до 50 кВт для любых объектов
✅ Интеллектуальный мониторинг (Wi‑Fi / RS485)
✅ Встроенная функция Zero Export — идеально для проектов без отдачи в сеть (инструкции https://aeroprofit.bitrix24.ru/~N2r1E)
✅ Компоненты премиум‑класса — используются детали от мировых брендов: KEMET, TOSHIBA, LEM, SINOMAGS и др. (см. фото)
✅ Совместимы со всеми современными солнечными панелями 500+ Вт
📞Звони: 8 (800) 500‑01‑07
📧Пиши: [email protected]
🛒Покупай: shop.a.eco
⚡A.ECO — вместе создаём будущее солнечной энергетики!
#AECO#солнечнаяэлектростанция#солнечныйинвертор#Renac#зелёнаяэнергия