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

Резултати

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

Пребарај: #edits

当前筛选 #edits清除筛选
чертовка с книгами

@bookkkris · Post #2536 · 28.02.2024 г., 07:39

🌟🌟🌟🌟🌟🌟🌟🌟 ваши прекрасные эдиты каждый раз поднимают мне настроение и вдохновение на неделю вперед!! не верю, что такие крутышки на меня подписаны! благодарю вас, это действительно очень приятно и вызывает много радости😭😭💔 #edits

Hashtags

чертовка с книгами

@bookkkris · Post #1965 · 08.12.2023 г., 12:00

💔💔💔💔💔- отдельная любовь! спасибо большое, видео шикарны😍 такие крутышки меня окружают! @successsssso@sakura_wex0 #edits

Hashtags

beng!

@mdmbeng · Post #2376 · 01.03.2025 г., 00:27

#Instagram#Edits 🌐Instagram 推迟推出新视频编辑应用“Edits” Instagram 原计划于 2025 年 3 月 13 日推出全新视频编辑应用“Edits”,旨在与字节跳动旗下的 CapCut 竞争。然而,根据 App Store 的预订页面显示,Edits 的发布日期已推迟至 2025 年 3 月 31 日,延迟了两周。 Edits 由 Instagram 首席执行官 Adam Mosseri 宣布,定位为一款为热衷于使用手机制作视频的用户提供的全方位创意工具。该应用将提供以下功能: • 专门的灵感标签页 • 用于跟踪创意的标签页 • 高质量的视频拍摄功能 • 全面的编辑工具 • 与朋友和其他创作者共享草稿的能力 • 轻松导出至 Instagram,并为 Reels 内容提供强大的数据分析 根据截图,Edits 将允许用户裁剪视频、合并多个片段、添加音频和旁白、创建字幕等。用户还可以直接在应用中录制视频,并设置分辨率、帧率和色彩配置。值得注意的是,Meta 表示 Edits 将支持无水印导出视频至其他平台。 巧合的是,Edits 宣布的当天,TikTok 和 CapCut 在美国被禁用。鉴于 Instagram 的 Reels 平台直接与 TikTok 在短视频领域竞争,Meta 投资开发自己的视频编辑器也就不足为奇了。 Edits 将首先面向 iPhone 用户推出,安卓版预计将在稍后发布。 频道:@mdmbeng 投稿:@mdmbeng_Bot

ПретходнаСтраница 1 од 4Следна