TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

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

Резултати

Пронајдени 2 слични објави

Пребарај: #across

当前筛选 #across清除筛选
Щукина про ТЦ

@girlinmall · Post #1708 · 10.10.2024 г., 08:03

🍁Осеннее чтение на профессиональные темы - ACROSS Special Edition - осень 2024 Делюсь свежим выпуском журнала Across 🇦🇹 – профильного изданием европейского рынка ТЦ и недвижимости, который издается в Австрии на английском языке. Кредо редакции журнала совпадает с моим и заключается в том, чтобы (по возможности) исключать из информационного и бытийного поля пессимистические настроения, а вместо этого «подсвечивать» возможности и инновационные кейсы, способные вдохновить читателя. От себя добавлю: делать всё, чтобы у русскоязычной аудитории индустрии торговых центров была возможность знакомиться с примерами из международной практики даже когда прямой диалог бизнес-культур затруднен. Я тут собиралась поныть, что Mallpic, увы, это не равноценная замена Mapic, бубубу, имея ввиду интеллектуальное меню, но передумала. Ниже поясню почему. Участники рынка торговых центров и розницы, подойдя к середине 2020-х, более не воспринимают бизнес торговых центров упрощенно, по схеме - «кризис - отскок - кризис». Проблемы существуют постоянно и притом - комплексные: геополитика, экономика, меняющаяся парадигма потребления, eCom, дальше продолжите сами. Сложные времена учат рынок очевидным вещам: людям не просто интересна физическая розница и ТЦ, она им необходима как «островок нормальности в бушующем мире». Стриты, торговые центры, ритейл-парки и аутлеты развиваются, но не так заметно как раньше, когда здания «прирастали» очередями и фазами, а участки - земельными наделами, а интенсивно - проводя реновации, улучшая концепции и клиентский опыт как правило в рамках «существующего пятна застройки». Так что я с огромным уважением отношусь ко всем управляющим, собственникам и девелоперам ТЦ, которые находят в себе силы и энергию идти вперед, улучшать активы и клиентский опыт при постоянно дорожающих деньгах. Поэтому сейшены типа Mallpic в Сочи тоже нужны, чтобы поддерживать горизонтальные связи, которые как стальной каркас держат наш рынок, не смотря на все бури и ветры. В эпоху перемен всем, кто профессионально вовлечен в сферу розницы и ТЦ важно держать руку на пульсе изменений. Потому что тех, кто не сможет качественно и своевременно найти ответы на запросы клиентов (и в B2B и в B2C), рынок или поглотит или выдавит. Ритейлеры в нашей стране это отлично понимают и потому стараются создавать уникальные концепции и клиентский опыт, который выходит за рамки привычного шопинга. То есть всё выше сказанное про «клиентский опыт и уникальность» - это мировой тренд. Не смотря на игнор, отмену и другие явления последних лет, отечественный ритейл и рынок CRE развиваются в русле мировых тенденций ⭐️Выпуск журнала Accross, с которым я вас знакомлю в этом посте, посвящен развлекательному ритейлу – розничным концепциям и местам, которые ориентируются на эмоциональную сферу покупателя, обращаются к сфере чувств, создают целостный пользовательский опыт, и потому коммерческий успех в них не определяется только выручкой, которую они «снимают» c метра. ⭐️Об этом как раз идет речь в материале доктора Йоханнеса Беренцена, управляющего директора компании BBE Retail Consultancy, который выступает за новую метрику в ритейле, основанную на клиентском опыте. ⭐️О том же кейс ритейлера Breuninger, открывшего супер-современный концепт-универмаг в Мюнхене. ⭐️И проект Brookfield + ECE в Берлине на Потсдамер Плац, где они строят "The Playce" много-функциональный центр, соединяющий опыт развлечений, шопинга и гостеприимства, то же про клиентский опыт в коммерческом пространстве. 🔥Чтобы осень не была такой долгой и мрачной давайте вдохновляться интересными идеями. Именно поэтому я продолжаю выходить на темную дорогу с фонарем, зажженным от факела просвещения. ⏰ Выпуск журнала Across в PDF на английском языке 🇬🇧 доступен по запросу в ЛС. 🙏Убедительно прошу не размещать публикацию в других группах. Материал публикую исключительно для персонального профессионального развития участников сообщества MarketMixer и подписчиков моего канала. #мненежалко_ваминтересно#across

American Оbserver

@american_observer · Post #5252 · 01.03.2026 г., 16:59

Strikes Across the Middle East Strikes across the Middle East continued Sunday, with Israel saying it launched a fresh wave in “the heart of Tehran” and Iran mounting attacks in Israel andacross the Persian Gulf as the regime pledged to avenge the death of Ayatollah Ali Khamenei. One of those strikes killed eight people near Jerusalem, according to Israel’s national emergency service, and injured at least 28. Khamenei, Iran’s supreme leader and a vocal opponent of Israel and the West since coming to power in 1989, was killed in U.S.-Israeli attacks Saturday along with other top Iranian leaders. Social media showed scenes of both grief and celebration in Iran, where the government declared 40 days of mourning and announced a temporary leadership structure. Israeli defense officials said Sunday that their initial strikes on Iranian leaders, launched in two locations, eliminated 40 military commanders, and that they would continue to dismantle Iranian military infrastructure. Iran’s retaliatory attacks included for the first time a strike against Oman, which had served as a mediator in nuclear discussions between Washington and Tehran. #strikes#across#middle#east#tehran#washington 📱American Оbserver - Stay up to date on all important events 🇺🇸