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

Резултати

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

Пребарај: #idm

当前筛选 #idm清除筛选
简悦🥑

@Xiangyues · Post #129 · 03.04.2022 г., 03:34

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版 持续更新中......【4月3日更新至:6.40.11】 月上柳梢头,人约黄昏后。 🏷 TAG #IDM#idm 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

简悦🥑

@Xiangyues · Post #96 · 20.03.2022 г., 12:05

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版(已更新至6.40.9) 月上柳梢头,人约黄昏后。 🏷 TAG #IDM#idm 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

简悦🥑

@Xiangyues · Post #18 · 24.02.2022 г., 06:56

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版(6.40.8) 月上柳梢头,人约黄昏后。 🏷 TAG #IDM#idm 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

🔻标题:IDM终生激活版教程(解决弹窗) 🌈说明: 在网上发现激活工具,尝试了一下,自用一个月激活OK未弹窗。 使用方法如下: 1.卸载旧版IDM,打开附件里的“IDM卸载后执行.bat”清理以前安装残留; 2.去IDM官网下载最新版软件并安装; 3.完全退出IDM,打开附件里的“IDM_6.4x_Crack_v19.7”并执行破解; 4.打开IDM,点击注册-注册,即可看到已成功授权。 tips:如果浏览器集成失败,扩展程序里面没有装上插件,可以去idm的安装目录找对应的浏览器插件,比如你是chrome,你就找IDMGCExt.crx,即Google Chrome的扩展,打开扩展程序的开发者模式,拖进chrome的扩展程序界面就能装了。 📃下载地址: 夸克盘 / 蓝奏云 ✉️标签:#idm#pc

Hashtags

爱游戏分享社

@aiyouxigongyifuzhu · Post #5592 · 04.08.2025 г., 14:12

项目: IDM_v6.42.42最新激活版 说明: 安装很简单,直接安装就能正常用。但如果你的电脑里已经装了其他版本, 建议先卸载掉,避免出现冲突哦~安装完成后,还是熟悉的操作感,所有功能都能正常使用,而且是永久免费的那种! 【下载见评论区】 #IDM#工具#破解版#安卓

简悦🥑

@Xiangyues · Post #806 · 28.07.2023 г., 08:03

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版 持续更新中...…【7月28日更新至:6.41.15】 春宵一刻值千金,花有清香月有阴。 🏷 TAG #IDM#WIN 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

简悦🥑

@Xiangyues · Post #730 · 07.04.2023 г., 12:10

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版 持续更新中...…【4月7日更新至:6.41.10】 春宵一刻值千金,花有清香月有阴。 🏷 TAG #IDM#WIN 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

简悦🥑

@Xiangyues · Post #709 · 02.03.2023 г., 07:31

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版 持续更新中...…【3月2日更新至:6.41.7】 春宵一刻值千金,花有清香月有阴。 🏷 TAG #IDM#WIN 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

简悦🥑

@Xiangyues · Post #673 · 15.12.2022 г., 16:29

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版 持续更新中...…【12月8日更新至:6.41.6】 春宵一刻值千金,花有清香月有阴。 🏷 TAG #IDM#WIN 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

简悦🥑

@Xiangyues · Post #614 · 08.10.2022 г., 04:27

🌎Internet Download Manager (IDM) IDM是一种将下载速度提高多达 5 倍、恢复和安排下载的工具。 绿色版本|官网正版 持续更新中...…【10月8日更新至:6.41.3】 春宵一刻值千金,花有清香月有阴。 🏷 TAG #IDM#WIN 📢 Channel @xiangyues 👥 Eren's Group @everyue

Hashtags

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