Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
🛍️Wildberries Azur Air aviakompaniyasini sotib olmoqchi
🫐 Bitim deyarli yakuniy bosqichga yetgan, ammo summasi oshkor qilinmagan.
Tatyana Kimga tegishli bo‘lgan aktivlar ro‘yxatida allaqachon quyidagilar bor:
* Rive Gauche
* Magas aeroporti
* O‘zbekiston pochtasi
* Fun&Sun tur-operatori
* WB Taxi.
➡️#wildberries | Birinchi IT-Blog
🍇 Wildberries O‘zbekistonda taksi xizmatini yo‘lga qo‘ymoqda — WB Int Export mamlakatda WB Taxi servisini ro‘yxatdan o‘tkazdi.
🚕 Dastlabki bosqichda taksi faqat xodimlar va hamkorlar uchun ishlaydi, keyin esa hamma uchun ishga tushiriladi.
🎁 Maxsus imkoniyat: safar uchun 50% keshbek beriladi — bu to‘lov marketpleysning ichki valyutasi “arbuzlar” orqali qaytariladi.
😅 Savol: Rossiyada bu taksi xizmati qachon ishga tushadi ekan?
➡️#wildberries | Birinchi IT-Blog
✏️Tankie's R&R: Один человек убит, двое ранены в результате стрельбы у офиса Wildberries в Москве (ТАСС). РИА пишет, что около 10 ранены.
В Wildberries сообщили о попытке «незаконного проникновения» Владислава Бакальчука и его охраны в офис компании. Татьяна Бакальчук написала , что «группа людей под руководством Владислава Бакальчука, Сергея Ануфриева (сооснователь компании) и Владимира Бакина (бывший председатель совета директоров «Вайлбериз банка») попытались захватить офисы Wildberries в Москве». Она назвала это «неудачной попыткой рейдерского захвата».
Среди пострадавших оказались: Абубакар Местоев, Умар Чичаев и Рашид Кодзев. Местоев — мастер спорта России по панкратиону и всестилевому каратэ, а Кодзев — чемпион России и ВС РФ по боксу.
Чичаев из клуба «Ахмат» — чемпион Европы и мира по тхэквондо, мастер спорта по кикбоксингу. Он также служил в Росгвардии в Чечне и фотографировался вместе с Кадыровым.
В ходе инцидента были задержаны 10 человек. Владислав Бакальчук покинул офис в сопровождении охраны и адвоката.
#Wildberries
Ничего необычного. Просто видео с пункта досмотра на складе Wildberries в Подмосковье.
Подробнее о конторе — в видео товарища Ассы
Часть 1 и Часть 2
#Wildberries
Если для кого-то уроком 2024 года станет "Я не хочу", то в 2025 году это уже будет "Надо было "Черезнихочу".
Для меня всегда формулой успеха было делать то, что не хочется и идти туда, куда страшно. И это совпадало с внутренним неформальным девизом #Wildberries - так компания и добилась феноменальных успехов и стала лидером рынка.
Дорогие друзья, я желаю в наступающем году не бояться трудностей и идти вперед, не оглядываясь назад. Сложности - лишь у нас в голове. Все обязательно получится!
😳Wildberries будет выдавать заказы через газетные киоски
Доставка должна заработать в тестовом режиме в 26 точках в Москве, Санкт-Петербурге, Воронеже и Твери, пишет РБК.
Доставлять в киоски будут не все посылки. Размер не должен превышать 35×45×38 см, а цена — не более 10 000 рублей. Срок хранения в пункте выдачи — три дня максимум. Примерка будет недоступна.
Доставка в такие точки будет бесплатной. Выбрать нужный киоск получится в приложении или на сайте Wildberries во время оформления заказа.
#News#News#Wildberries
🇷🇺#VTBR#Wildberries
ВТБ и Wildberries обсуждают варианты альянсов — РБК
1) ВТБ может для привлечения средств пойти на новую рыночную допэмиссию акций, в результате которой доля государства в банке может снизиться с 74,45% вплоть до 50% плюс одна акция. При таком сценарии полученные деньги банк сможет напрямую направить на покупку доли в Wildberries, говорит источник РБК
2) ВТБ может оплатить долю в Wildberries своими акциями. В этом случае акционеры маркетплейса могут стать новыми миноритариями госбанка и иметь дополнительный дивидендный поток
mt в max
Этот мем с нами надолго, ибо :
🇷🇺#VTBR#Wildberries
ВТБ и Wildberries обсуждают варианты альянсов — РБК
ВТБ и Wildberries обсуждают возможное слияние
1) ВТБ может для привлечения средств пойти на новую рыночную допэмиссию акций, в результате которой доля государства в банке может снизиться с 74,45% вплоть до 50% плюс одна акция. При таком сценарии полученные деньги банк сможет напрямую направить на покупку доли в Wildberries, говорит источник РБК
2) ВТБ может оплатить долю в Wildberries своими акциями. В этом случае акционеры маркетплейса могут стать новыми миноритариями госбанка и иметь дополнительный дивидендный поток
mt в max
🛍Wildberries запустила сайт о персональных данных в Беларуси
🦇 Теперь у пользователей появился сайт privacy.wildberries.by, где в удобной форме собрана вся информация о том, как компания работает с персональными данными.
🔒 Что там есть:
– простые объяснения, зачем важно защищать личную информацию;
– инструменты для контроля своих данных;
– примеры, как Wildberries бережно обрабатывает данные в сервисах;
– возможность задать вопросы компании напрямую.
💬 «Одна из главных угроз — когда сами пользователи передают свои данные третьим лицам. Наш портал помогает формировать культуру кибербезопасности», — отметила Евгения Казачковская, начальник отдела внутреннего контроля Wildberries в Беларуси.
👉 Сайт учитывает требования белорусского законодательства и станет надежным помощником в онлайн-безопасности.
👮♀️Оставайтесь на связи, следите за обновлениями и делитесь важной информацией с друзьями — вместе мы сильнее!
#УПК_Брест
#Wildberries
Когда на кухне трудно поддерживать порядок, дело чаще всего в хранении. В этой подборке — находки с #wildberries, которые помогут разложить все по местам и сделать пространство удобным и аккуратным.
Топ-7 товаров для кухни:
◾️Банки для специй, чая и кофе — арт. 248912057
◾️Органайзер для столовых приборов — арт. 268487074
◾️Органайзер для чайных пакетиков — арт. 326887458
◾️Хлебница — арт. 204242526
◾️Банки для сыпучих продуктов — арт. 398129819
◾️Держатель для досок и тарелок — арт. 231747144
◾️Настольная полка — арт. 297471926
#находки#находки@tostr_ru
👍Tostr теперь в MAX
Время находок с маркетплейсов! На этот раз нашли на #wildberries посуду и детали для сервировки новогоднего стола.
Топ-7 товаров для сервировки:
◾️Дорожка — арт. 543950145
◾️Тарелки — арт. 528999005
◾️Блюдо — арт. 444469426
◾️Бокалы — арт. 293840037
◾️Набор столовых приборов — арт. 438626991
◾️Салфетки — арт. 528903625
◾️Кольца для салфеток — арт. 580391448
#находки#находки@tostr_ru
👍Tostr теперь в MAX
Время находок с маркетплейсов! На этот раз нашли на #wildberries товары для кухни, с которыми готовить будет проще и приятнее.
Топ-7 находок для кухни:
◾️Таймер — арт. 418583321
◾️Термометр — арт. 301437312
◾️Терка — арт. 387596079
◾️Мельница для специй — арт. 371287084
◾️Весы — арт. 376561874
◾️Ножеточка — арт. 418554001
◾️Вакууматор — арт. 91203945
#находки#находки@tostr_ru
💎Tostr | Подписаться