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

Резултати

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

Пребарај: #wisteria

当前筛选 #wisteria清除筛选
WISTERIA KIDS

@wisteria_moscow · Post #585 · 28.12.2025 г., 09:27

Уже слышен лёгкий топот копыт и мы готовы встречать Новый год, несущий утончённость и благородство Огненной Лошади.🌟 Встретьте его в безупречном и уверенном стиле, воплощённом в коллекции Balmain - сейчас на неё действуют скидки до –50%.🌟 Balmain Ждём вас за главным образом года в бутике WISTERIA.🌟 📍г.Москва , Хамовники Саввинская набережная 13 #WISTERIA#Balmain#премиумбренды

WISTERIA KIDS

@wisteria_moscow · Post #518 · 17.12.2025 г., 15:08

Говорят, что нельзя купить счастье. Но можно купить прекрасный подарок в Wisteria и упаковать его в идеальную бумагу.🌟🌟 И получить в итоге два в одном: сам подарок и невероятное удовольствие от его распаковки.🌟 #wisteria#детскийподарок#упаковкаподарков

WISTERIA KIDS

@wisteria_moscow · Post #499 · 12.12.2025 г., 12:46

Время подарков в Wisteria! 🌟 Наступает самое волшебное время года. Время, когда воздух пахнет хвоей и мандаринами, а в окнах зажигаются новогодние гирлянды. Время, когда хочется дарить тепло, уют и красоту.🌟 Пусть каждый подарок, который вы найдёте у нас, станет частичкой этой магии — тёплым намёком на заботу, стильным пожеланием радости, воплощением изысканного вкуса.🌟 Мы завернули в нашу фирменную упаковку сотни идей: от тех, что станут главным сюрпризом под ёлкой, до изящных знаков внимания для ваших детей. Дарите не просто подарки.🌟 Дарите эмоции и вдохновение от Wisteria!🌟🌟 #Wisteria#WisteriaKids#WisteriaFashion#ПремиумБренды

WISTERIA KIDS

@wisteria_moscow · Post #580 · 26.12.2025 г., 13:14

В WISTERIA поступление новой коллекции Stone Island сезона AW25. STONE ISLAND В фокусе этого сезона: 🌟Чёткие, архитектурные силуэты 🌟Передовые технологии обработки материалов 🌟Сложная, приглушенная палитра 🌟Детали, в которых заключена философия бренда Исследуйте коллекцию первыми.🌟 #StoneIsland#StoneIslandAW25#НоваяКоллекция#WISTERIA

WISTERIA KIDS

@wisteria_moscow · Post #597 · 29.12.2025 г., 14:45

Есть любовь, которая длится всю жизнь. Для Стеллы Маккартни это - любовь к лошадям.🌟 Она выросла в живописном графстве Кент, где её детство было окружено природой и животными. Стелла не просто наблюдала за ними и каталась, но заботилась о них, формируя особую, доверительную связь. 🌟 Это воспитало в ней чувство ответственности, терпение и уважение ко всему живому.🌟 Любовь к лошадям стала основой её революционного подхода к моде.Именно поэтому бренд Stella McCartney никогда не использует кожу, мех или шерсть. Лошади — это её музы, свободу, грацию и нежность которых она переносит в свои коллекции.🌟 В наступающем году образ лошади на принтах новой коллекции Stella McCartney весна-лето’26 звучит особенно символично.🌟 STELLA McCARTNEY #WISTERIA#StellaMcCartney#премиумбренды#одеждадлядетей

WISTERIA KIDS

@wisteria_moscow · Post #600 · 02.01.2026 г., 09:44

Новогодние каникулы — время для зимних приключений!🌟 Пока дети отдыхают, катаются на санках, коньках и просто радуются снегу, важно, чтобы им было тепло, уютно и комфортно.🌟 Подарите детям свободу движения и яркие эмоции этой зимой, а мы позаботимся о том, чтобы их одежда была самой удобной, красивой и теплой.🌟 Ждем вас в Wisteria за идеальным зимним гардеробом для новых приключений! #Wisteria#детскаяодежда#зимниеканикулы#детскаямода#зимняяодежда

WISTERIA KIDS

@wisteria_moscow · Post #486 · 11.12.2025 г., 06:54

Wisteria: Ваши особенные Клиентские Дни! 🌟 Дорогие друзья! Готовимся к праздникам с комфортом и выгодой. С 11 по 17 декабря приглашаем вас на наши Клиентские Дни в бутике и онлайн.🌟 Вас ждет специальное предложение: –20% на избранные коллекции любимых премиальных брендов.🌟 Во время клиентских дней скидка комбинируется с вашей картой привилегий Wisteria, создавая уникальную возможность для обновления гардероба. В акции участвуют: 🌟 DOLCE&GABANNA 🌟 ANJA SCHWERBROCK 🌟 BALMAIN 🌟 BOSS 🌟 EMILIO PUCCI 🌟 EMPORIO ARMANI 🌟 HUGO 🌟 KENZO 🌟 PRETTY BALLERINAS 🌟 REGINA 🌟TARTINE ET CHOCOLATE 🌟 SNUG Это идеальный момент, чтобы выбрать стильные вещи для новогодних праздников и зимнего сезона.🌟 Ждем вас: 🌟 11 – 17 декабря 🌟 Бутик: Хамовники, Саввинская набережная, 13 🌐 Онлайн: https://wisteriakids.ru/choice/klientskiedniminus20/?page=2 Совместите выгодный шопинг с волшебством! 11 декабря в бутике вас ждет наш Новогодний Огонёк с мастер-классами, фокусником и подарками для детей. Приходите за стилем и праздничным настроением!🌟 #Wisteria#WisteriaKids#КлиентскиеДни#Скидка20#ПремиальнаяДетскаяОдежда#ДетскаяМода#Распродажа

WISTERIA KIDS

@wisteria_moscow · Post #488 · 11.12.2025 г., 09:25

Клиентские дни с волшебством: Новогодний огонёк в Wisteria!🌟 Это будет день, наполненный магией и радостью для всей семьи.🌟 Для наших маленьких гостей: 🌟творческие мастер-классы 🌟выступление настоящего фокусника-иллюзиониста 🌟вкусные праздничные угощения 🌟подарки и сюрпризы от эльфов Wisteria Пока дети заняты творчеством и волшебством, вы сможете в расслабленной атмосфере выбрать идеальные наряды на праздники и не только: 🌟20% скидка на лучшие предложения сезона. 🌟персональный подбор образов от наших стилистов. 🌟эксклюзивные подарки за покупку Ждем вас 11 декабря в бутике Wisteria: c 14:00 до 20:00 Давайте создадим для детей самое яркое предновогоднее воспоминание вместе! 🌟 #Wisteria#WisteriaKids#НовогоднийОгонек#ПраздникДляДетей#ПремиальнаяДетскаяОдежда#МастерКлассДляДетей#СемейныйПраздник

WISTERIA KIDS

@wisteria_moscow · Post #639 · 09.01.2026 г., 10:58

Ферма учит простому: счастье — в контакте. С природой, с животными, с близкими.🌟 В такие моменты понимаешь: детство создаётся из простых, но ярких впечатлений. 🌟 Из запаха яблок прямо с ветки, из смелости протянуть руку к козлёнку, из удивления от тёплого куриного яйца в ладошке.🌟 Не нужно ничего искусственного, когда есть настоящее. В Wisteria мы верим, что правильная вещь — та, которую не замечаешь, которая позволяет быть собой: любопытным, веселым и отважным для новых приключений.🌟 WISTERIA KIDS #wisteria#детскийбутик#гардеробдляприключений#фермасдетьми#естественныефото#семейныйдень#стильидети

WISTERIA KIDS

@wisteria_moscow · Post #634 · 08.01.2026 г., 14:40

Хотите естественных и радостных фото с ребёнком?🌟 Отправляйтесь на ферму! Здесь не придётся уговаривать «посмотри в камеру» » или «ну,пожалуйста, улыбнись». 🌟 Тут все эмоции рождаются сами: восторг от кролика, удивление от размера коровы, игра в козу рогатую.🌟 Идеальный кадр рождается там, где ребёнку по-настоящему хорошо. А мы в Wisteria поможем собрать гардероб для таких особенных дней — красивый, комфортный, созданный для настоящих эмоций.🌟 WISTERIA KIDS #wisteria#детскийбутик#гардеробдляприключений#фермасдетьми#естественныефото#семейныйдень#стильидети