@quweibb · Post #5193 · 14.04.2026 г., 15:47
御驾亲征 #cf
Hashtags
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
Пребарај: #cf
@quweibb · Post #5193 · 14.04.2026 г., 15:47
御驾亲征 #cf
Hashtags
@dingyue_Center · Post #3844 · 18.11.2025 г., 11:56
#CF 炸了 第一次看到中间是❌ 没逝的,CF中转节点还能用✅
Hashtags
@cosmosy_tg · Post #1444 · 30.10.2025 г., 04:32
⨳ 29.10.25 ⨳ cosmosy для ahamo #cf@cosmosy#cosmosy
@qiuyuezt · Post #5964 · 20.07.2025 г., 17:34
PC-CF公益稳定透瞄辅助 说明: 不保证每个人都稳定 地址: 【在本贴评论区】 类型:#cf#辅助
@qiuyuezt · Post #5938 · 16.07.2025 г., 15:03
PC-CF公益人物透视鬼跳辅助2 说明: 无 查毒: 点此【可能有病毒】 地址: 【在本贴评论区】 类型:#cf#辅助
@qiuyuezt · Post #5833 · 05.07.2025 г., 15:12
PC-CF公益人物透视鬼跳辅助 说明: 无 查毒: 点此【可能有病毒】 地址: 【在本贴评论区】 类型:#cf#辅助
@qiuyuezt · Post #5723 · 12.06.2025 г., 19:14
PC-抖音很火的CF卡盾bug辅助 说明: 小号娱乐,有封号风险 使用说明 替换DLL 你的CF盘\WeGameApps\CF:穿越火线\x64 里面 地址: 【在本贴评论区】 类型:#cf#辅助
@qiuyuezt · Post #5699 · 09.06.2025 г., 17:25
PC-CF台湾驱透视带鬼跳辅助 说明:无 查毒:点此 【可能有病毒】 地址:【在本贴评论区】 类型:#cf#辅助
@qiuyuezt · Post #5591 · 23.05.2025 г., 20:03
PC-CF单自瞄辅助 说明: 投稿者:ki(@akayis11) 临时密钥为 kk 地址: 【在本贴评论区】 类型:#cf#辅助
@fenxiangzhuanqian · Post #703 · 28.02.2024 г., 23:43
180. 完蛋,被我说中了!云悠悠去了端游,属实大预言家~#游戏cg#cf
@Xiangyues · Post #266 · 09.05.2022 г., 13:03
✨Cloudflare Workers 被墙 🏷TAG #资讯#CF 📢 Channel @xiangyues 👥 Eren's Group @everyue
@fdd_JSB · Post #4332 · 26.06.2024 г., 03:58
无限邮箱 利用CF的邮箱路由获取无限邮箱 前提是你得有你的域名 域名购买 打开并登录你的CF ,点击你的域名→电子邮箱→自定义地址随机→目标位置填写你的真实邮箱→创建并继续→验证一下→添加记录并启用→路由规则 更多功能自己研究吧 #cf #邮箱