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

Резултати

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

Пребарај: #dscloud

当前筛选 #dscloud清除筛选
XP Digital Lab

@rocchl · Post #7507 · 28.11.2025 г., 05:29

黑五来袭,小鹏送礼🎁DS Cloud一个软件把 NAS + 视频 + 音乐+Emby全接管,月卡,年卡,终身卡,送给大家! 点击拿卡 标签:#dscloud Created by RocM 官方频道:@rocCHL 官方群组:@roctech 官方合作:@rocmmbot

Hashtags

XP Digital Lab

@rocchl · Post #7486 · 27.11.2025 г., 04:03

小鹏给大家争取了两天的7折活动(11月27到28日),感兴趣的不要错过👇 App Store DS Cloud 深度评测:NAS 管控 + 音视频播放的“全家桶解决方案”(CC字幕) https://youtu.be/gXJiPc8KCX8 标签:#dscloud Created by RocM 官方频道:@rocCHL 官方群组:@roctech 官方合作:@rocmmbot

Hashtags

小小溪部落

@tribebrook · Post #1106 · 26.01.2026 г., 15:23

🗒 标签: #dscloud ▎DSone 麻烦大家个事情,有空的话帮我点下Upvoted,谢谢大家啦~ https://www.producthunt.com/products/ds-one-self-hosted-media-controller?launch=ds-one 🎟️ 别忘记参与抽奖 (以下两个群都在抽TG会员) 华人时报华人事件焦点 🌟 小贴士: 限免 / 兑换码具有时效性! 置顶频道 + 开启推送, 福利抢鲜一步! 📢 频道💬 群组🤖 解封 / 投稿 📱TG/GV号购买

Hashtags

小小溪部落

@tribebrook · Post #696 · 25.11.2025 г., 13:41

#dscloud#视频 鉴于 DS Cloud 开发者正在为我们的书库爆肝定制专用接口!💪 稳健服决定回馈这波神仙合作! 【超值福利看这里】 即日起,凡是购买或兑换 DS Cloud 永久 VIP 的用户,凭订单截图私聊 @今麦 bot 🤖,即可兑换 稳健音书白名单!🎟(兑换者需已开通 3 服账号,数量有限送完为止) 独家功能 + 永久白名单,这波不冲,更待何时?!😎 (此次福利由稳健无偿提供, 解释权归管理组) 🔔 提示:限免,兑换码具有时效性,打开本频道通知,第一时间获取全网资讯!!! 🏠 消息 Via: 小小溪 📰 群组 @homebrook 📢 频道 @home_brook 🤖 解封 | 投稿 Bot:@P0se1d

小小溪部落

@tribebrook · Post #234 · 15.08.2025 г., 00:37

#DScloud#iOS#tf AudioBookshelf 功能正在日趋完善 🎉 顺便做了下“夏季大扫除”,把一些长时间没用的测试设备请出去了~ 想继续陪我一起折腾、体验新功能的小伙伴,可以直接通过下面的链接加入 TestFlight 测试: https://testflight.apple.com/join/pL9tLj6Q 欢迎来围观、吐槽、提建议,我们一起把它变得更好 📚✨

XP Digital Lab

@rocchl · Post #8757 · 16.01.2026 г., 02:42

DS One(DS Cloud)安卓版本现已上线 1.支持群晖NAS管理 2.支持Emby&Jellyfin视频 3.支持Audiobookshelf、AudioStation、Navidrome音频播放 4.支持WebDAV连接方式 划重点,免费的 下载地址 标签:#dscloud#dsone Created by RocM 官方频道:@rocCHL 官方群组:@roctech 官方合作:@rocmmbot

小小溪部落

@tribebrook · Post #853 · 24.12.2025 г., 08:46

#Google#Googleplay#DScloud 🚀 DS One Google Play 封闭测试体验官招募中 如果你有 群晖 NAS 🗄 如果你正在使用 Emby / Navidrome / Audiobookshelf 🎬🎵🎧 如果你希望用 一个 App 管理视频、音乐、有声书和文件 📱 那欢迎你加入 DS One 的封闭测试! ✨ DS One 是一款 一站式 NAS 媒体与文件管理应用,致力于让自建媒体库在手机上也能拥有流畅、统一的使用体验。 目前已支持: 群晖 NAS Emby 🎞 Navidrome 🎶 Audiobookshelf 🎧 WebDAV 🧪 目前 DS One 正在 Google Play 封闭测试阶段,希望邀请真实用户一起打磨产品体验。 作为封测用户,你将可以: 抢先体验新功能 🚀 参与产品优化和体验改进 🛠 直接向开发者反馈问题和建议 💬 👥 适合参与的人群: NAS 用户 🗄 自建影音 / 音乐库玩家 🎥🎼 Emby / Navidrome / Audiobookshelf 使用者 喜欢体验新 App、愿意反馈体验的人 🙌 加入方式:填写这个表格,并且需要连续测试 14 天 ❗️❗️❗️(否则 App 将无法上架) 申请地址:填写此表格 达到上限将停止添加测试人员,截止日期 2026 年 12 月 28 日 🌟 小贴士:限免 / 兑换码具有时效性! 置顶频道 + 开启推送,福利抢鲜一步!🌟 🔥 消息 Via:小小溪 💬@TrenDesire📢@Tribebrook 🤖 解封 | 投稿 Bot:@P0se1d 🎁福利 | 📮 即时 | 🔐 安全