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

Резултати

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

Пребарај: #kidfriendly

当前筛选 #kidfriendly清除筛选

#аренда#А841⤴️⤴️⤴️ 🍂 Интерьер напоминает раннюю осень: ещё не по-октябрьски холодно, но уже куда уютнее оставаться дома. 🛋️ Тепло бордового дивана — как первые листья, что начинают ронять деревья. Серый текстиль и стены — точно потяжелевшее небо. 🌱 А синий столик — вспышка неожиданного цвета, случайно расцветший куст, решивший жить по своим правилам. 💸115к/мес + к/у 100к/мес + к/у 📐 47 м² 🪜 этаж 5 из 12 👧🏻#kidfriendly 📍Благодатная улица, 50 📞 на связи агент Рамиз +79111366704 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А754⤴️ фото ⤴️ Этот 🦚 павлин привлекает не только самок, но и всех, кто любит авантюризм и 🏺 историю. Можно составить целую путевую заметку, проходясь по этому 🏛 музею. Свое путешествие можно начать с египетских сфинксов и закончить винтажной коллекцией 🛹 скейтов. 💸 139к/мес + счетчики 📐 80 м² 🪜 этаж 5 из 5 👧🏻#kidfriendly 🕰 Сдается с января 📍Лермонтовский проспект, 30 📲 На связи агент Полина 89819726946 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А886⤴️⤴️⤴️ 🙌 Представляем вам квартиру тех, чей дорогой смех можно услышать в лакшери 🍽 ресторане в будний день. «Ха💸ха💸да» — для более прошаренных. Из плюшек — 🛥 яхт-клуб в шаговой доступности и набережная. Для купели места не нашлось, но закалять свои 🧠 умы можно в длинной раковине (только постарайтесь не застрять там 😅). 📐 45 м² 🪜 этаж 6 из 10 💸 150к/мес + к/у 👧🏻#kidfriendly 📍пр-кт Петровский, 26 📲 на связи агент Денис +7 921 933 1900 *больше фото и план в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А858⤴️⤴️⤴️ ⛔️⛔️⛔️ СДАНА ПОДПИСЧИКУ НЕСТЫДНЫХ ⛔️⛔️⛔️ Интерьер — будто забытый съёмочный павильон Диснея, созданный для романтического фэнтези о городской жизни по мотивам «Красавицы и Чудовища» 👑 И в главной роли с номинацией «За монументальное изящество» — Ванна на Царственных Лапах 🛁 Массивная, чугунная, с львиным достоинством. Примите позу — вы здесь и Красавица, и Чудовище в одном лице 🧌 А её свита — это ваши личные, слегка драматичные слуги: пуфик, свечи и шкаф на ножках 🛐 📐 150 м² 🪜 этаж 3 из 3 💸 250к/мес + к/у 🎨 Автор интерьера: студия Hot Homestaging Нины Гуревич 👧🏻#kidfriendly 📍13-я линия Васильевского Острова, 24 📲 на связи агент Денис +7 921 933-19-00 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А828⤴️⤴️⤴️ Для всех, не привыкших хватать информацию по верхушкам и по-хорошему влюблённых в детали 🔎 Есть ощущение, что пуфик в хохломе вот-вот заведёт разговор, но скромно молчит, потому что на его лицо рано или поздно сядут 🗿 А вот и ковёр — целая вселенная под ногами. Ходить по нему босиком — обязательный ритуал. Делайте так два раза в день — и ваши глаза не будут болеть 👀 💸 80.000₽/мес + к/у 70.000₽/мес + к/у 📐 35 м² 🪜 этаж 4 из 12 👧🏻#kidfriendly 📍Уральская, 25 📲 На связи агент Марина +7 981 847 53 59 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А779⤴️⤴️⤴️ Дизайнер этой квартиры явно снимает 🎩 шляпу перед ее величеством природой. Вся ванная сделана из мрамора, а многие элементы спальной и кухни 🪵 деревянные. Так и с бобром за столом можно начать сидеть. Хотя и тут они пытались найти место современной строгости и четкости. Но проиграли — 〰️ линии над кроватью пошли «в вразвалочку». 💸 150.000₽/мес +к/у 📐 50 м² 🪜 этаж 4 из 6 👧#kidfriendly 👩🏻‍🎨 Дизайнер интерьера— Тимофей Вересновский 📍Петровский проспект, 2 📞 На связи агент Михаил +7 904 618 1940 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А763⤴️⤴️⤴️ 🗓️ Советуем вам заехать сюда до праздников. 👛 Во первых, такое решение совместит Новый год с новосельем, что благополучно скажется на сытости вашего кошелька. 🖼️ Во-вторых, понадобится время, чтобы привыкнуть к картине с мольбертом и не захотеть попытаться пройти в неё с утра, хотя скорее с полудня, первого января 🤭 💰 180к/мес + счетчики 📐 135 м² 🪜 3/4 этаж 👧🏻#kidfriendly 📍Наб. реки Фонтанки, 121 📞 На связи агент Дмитрий 89052232054 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А750⤴️⤴️⤴️ 🙋 У каждого есть друг, который подобно скромной гальке на берегу: неприметный, невзрачный, серый. 🔎 Потом ты узнаешь его поближе, как вдруг вспыхивает яркий узор на его личности и начинается 📢 «Лучших сосок не было и нет…», словно в спокойном интерьере внезапно натыкаешься на живописную деталь (причем какую) 🤭 💰250к/мес + ку 200к/мес + ку 📐 93 м² 🪜 4/6 этаж 👧🏻#kidfriendly 📍Крестовский проспект, 12 📞 На связи агент Артем 89626855290 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А898⤴️⤴️⤴️ 👀 Едва ли задержишься взглядом — и магия слоев начинает раскрываться, как фактура золота на полотне «Поцелуй» ⚜️ 🪟 Меж стен витают фрагменты одного большого сложного образа. Как у Климта, каждая мелочь — присмотрелся, и глаз не оторвешь. 📐 75 м² (двухуровневая) 🪜 этаж 4 из 16 💸 100к/мес + к/у 👧🏻#kidfriendly 📍проспект Славы, 5 📞 на связи агент Павел +79219097797 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А887⤴️ фото ⤴️ 🐝 Мы ходили, мы ходили по полям, по полям. И не могли пройти мимо такой 🌸 цветочной композиции. Она как никто другой олицетворяет первые лучи на краю постели, повышение уровня 🙌 дофамина и мысль, что весна уже на пороге! 📐 87 м² 🪜 этаж 4 из 9 💸 250к/мес + к/у 👧🏻#kidfriendly (старше 6 лет) 📍улица Чапаева, 17к2 📲 на связи агент Анна +79219878950 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А853⤴️⤴️⤴️ ⛔️⛔️⛔️СДАНА ⛔️⛔️⛔️ 🗣️Нестыдный хор представляет: «Из чего же, из чего же, из чего же Сделана эта квартира? Из подушек, и одеяла 🛋️ И из книжек, и из детишек Сделана эта квартира! Из закатов 🌅, и художеств 🎨 Из балкона, и цветочков Сделана эта квартира!» 💸 85к/мес + к/у 📐 62 м² 🪜 этаж 8 из 12 👧🏻#kidfriendly (старше 6 лет) 🛋️ вторая спальня будет дополнена мебелью по согласованию 📍Солнечная, 2 🚇 Улица Дыбенко 📱 на связи агент Юлия +7 (906) 253-76-80 *больше фото и план в комментариях ⤵️ Нестыдные | Петербург. Подписаться

#аренда#А844⤴️⤴️⤴️ В какой квартире желает провести всю осень 🍂 каждый уважающий себя человек, как только капля дождя 💦 касается фасада дома. Большой синий 💙 диван, к которому хочется себя приковать до конца депрессивного периода, оранжевые стеклоблоки, которые уже подстроились под ваш рокс с виски 🥃 и 2 комнаты, чтобы в сотый раз переживать за судьбу Беллы и Эдварда 💔 💸 160к/мес + к/у 📐 85 м² 🪜 этаж 4 из 5 👧🏻#kidfriendly 🗓️Сдается с 21 сентября до 27 марта 2026 📍Галерная улица, 11 📞 на связи агент Наталья +79996688435 *больше фото в комментариях ⤵️ Нестыдные | Петербург. Подписаться

123•••89
ПретходнаСтраница 1 од 9Следна