@ukrinformator · Post #89446 · 29.03.2026 г., 07:51
#offtopУчастница «Мисс Таиланд» потеряла зубы прямо на сцене 😐 Информатор | Подписаться
Hashtags
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
Пребарај: #offtop
@ukrinformator · Post #89446 · 29.03.2026 г., 07:51
#offtopУчастница «Мисс Таиланд» потеряла зубы прямо на сцене 😐 Информатор | Подписаться
Hashtags
@mpartisans_news · Post #16443 · 03.07.2025 г., 09:04
#offtop: Топовый нападающий Ливерпуля и сборной Португалии, чемпион Англии и Лиги Наций завершившегося сезона — Диогу Жота погиб в автокатастрофе на западе Испании. Ему было 28
Hashtags
@nocap · Post #12659 · 03.04.2026 г., 14:31
У вас есть треки, которые настолько глубоко трогают, что их сложно переслушивать, так как вызывают сильное чувство грусти или ностальгии? Давайте по парочке в комменты. Мои: • Kanye West "Pinocchio Story" • Иван Дорн "Северное сияние" #offtop
Hashtags
@boredpandablog · Post #10905 · 30.08.2025 г., 11:17
#offtop Kuni kecha OlmaOtaning “Qayrat” klubi ChL asosiy bosqichiga chiqqani katta shov-shuvga aylandi. Undanam qizigʻi albatta, Madridning “Real” klubining OlmaOtaga boʻlajak tashrifi muhokamalarga sabab boʻldi. Internetda qirgʻiz va oʻzbek birodarlarning ham oʻyinga qiziqish bildirishi – tabiiyki qozoq bavurlarimizga yoqmadi. Stadion rezinoviy emas, oʻzimizga joy kam deya. Ularni 100% tushunaman. Ammo “Kelmanglar” deyish yechim emas va xato. Men Angliyaga kelganimdan beri eng koʻp berilgan savollardan biri “PLga tushdingmi?” Ha, oʻyinga tushdim. Ammo top klublarnikiga emas, hozircha. Oʻzi oʻrtamiyona klublarnikiga tushish ham oson emas. Nega? Chunki xohlovchi koʻp va klublar doimo eng sodiq fanatlariga e’tibor qaratadi. Oddiy tushuntirganda, Mavsumiy chiptalar xarid qilib yurganlar doim arzon va qulay chiptalarni xarid qilishadi. Men masalan Liverpul rasmiy “fan”ligini sotib olganman. Bu menga oʻyinlar uchun berilgan chiptalar random tanlovida qatnashishga imkom beradi. Chipta kam, odam koʻp. Demak, birinchi Season Ticket holderlar, keyin oldin koʻp oʻyinlarga qatnashganlar, All Membershiplar, shulardan ortsa, Liverpulda yashaydiganlar (!) oʻrtasida taqsimot boʻladi. Ana undan keyin General Sale. Hammasi onlayn. Chiptalar ham QR/NFC pass koʻrinishida. Albatta, doimgidek ikkinchi qoʻl saytlar yoki Hospitality chiptalar olsangiz boʻladi, ammo ular qimmat. H. chiptalarning yaxshi tarafi, anavi stadionni tepasidagi VIP zallarda o’tirasiz, restoraniga kira olasiz:) Toʻgʻri, futbol Angliya uchun – kult darajasida. Ammo bizdayam allaqachon shunaqa tizim qilish kerak. Shunda futbolning ashaddiy fanatlari, oʻz klubini ogʻiri-yengilida birga boʻlganlar - mana shunday Real kabi jamoalarga qarshi oʻyindayam stadionga bemalol tushadi. Qolganlar esa majbur qimmatroqqa chipta oladi va niyatiga yetadi. Win-win. @boredpandablog
Hashtags
@yuk4r1_4ever · Post #10634 · 03.04.2026 г., 09:31
,,По своим стреляешь" #offtop
Hashtags
@aiposted · Post #6485 · 01.04.2026 г., 22:05
🚀Humans return to deep space #offtop NASA's Artemis II marks the first crewed mission beyond low Earth orbit in 50+ years, sending four astronauts on a 10-day lunar flyby. Artemis II Details: • First crewed Artemis mission • Lunar flyby; no landing • Tests deep space systems • First such flight since Apollo 17 Significance: • Final test before lunar landing • Validates spacecraft, life support, and navigation • Enables permanent lunar presence • Paves way for Mars missions Watch it live. @aipost🏴
Hashtags
@etnomoda · Post #3869 · 04.10.2024 г., 12:22
#offtop Показ Coperni в парижском Диснейленде на фоне того самого замка 🦄🎉🩵💜🩷
Hashtags
@etnomoda · Post #3771 · 25.09.2024 г., 06:04
#offtop Любит, не любит... "Сюрприз пшеницы" испанской художницы Марухи Мальо
Hashtags
@etnomoda · Post #3725 · 14.09.2024 г., 15:38
#offtop Кружевное настроение 1. показ RVDK. Нидерландский дизайнер Рональд ван дер Кемп, шоу в последний день нью-йоркской Недели моды. 2. Камила Кабейо в Tony Ward на MTV VMA 3. Корсет от Джексон Уидерхофт на Нью-Йоркской неделе моды 4. Белла Хадид на обложке осеннего номера Dressed To Thrill журнала W Magazine.
Hashtags
@etnomoda · Post #3709 · 12.09.2024 г., 08:42
Grace Ling SS2025 NYFW #offtop Эстетика коллекции перекликается если не с визуальным рядом сериала "Дом дракона", последний сезон которого вышел недавно, то, по крайней мере, с его атмосферой. Металлические (драконьи?) когти, элементы кольчуги на одном из платьев, силуэты, отсылающие к средневековым нарядам и главное - свой личный ворон у многих персонажей - как не вспомнить главное фэнтези сезона 🔥👸🦇 📹@upnextdesigner
Hashtags
@etnomoda · Post #3480 · 17.07.2024 г., 08:12
Летний #offtop Эмилио Пуччи снял коллекцию бикини в 1956 на Вилле Романа дель Казале на Сицилии, с мозаиками, которые напоминают о вневременной стороне моды. 📷 Elsa Haertter
Hashtags
@chelsea_london_uz · Post #2873 · 02.08.2025 г., 14:48
#offtop Kapitan "Tottenxem" Son Xyon Min klubni tark etish qarorini e'lon qildi. 🦁Chelsi
Hashtags