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

Резултати

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

Пребарај: #gtd

当前筛选 #gtd清除筛选
严选君综合福利社

@YXZBP · Post #9128 · 09.02.2026 г., 04:36

🚀Todoist ━━━━━━━━━━━━━━━━━ 💡亮点:你的宿舍生活,从此井井有条 📖简介: 宿舍生活杂事多,作业、小组任务、值日、账单、活动报名……脑子根本记不住。Todoist让你一键添加任务,设置优先级和提醒,支持项目分类和子任务。无论是个人学习计划,还是宿舍公共事务协作,都能轻松管理,告别遗忘和拖延,让混乱的集体生活变得清晰高效。 🏷️标签:#任务管理#时间管理#协作工具#GTD 🔗👉 点击直达 ━━━━━━━━━━━━━━━━━ @yxzbp#Tool

庭说 TingTalk

@Tingtalk · Post #372 · 17.09.2021 г., 14:13

打造一个自己喜欢的 空间 不是为了让自己沉浸在其中,或者让它仅仅只是看起来好看。而是在赏心悦目的同时,让我更加注重自己的 #健康、#效率 以及 #生活 状态。 @TingTalk:虽然在 2019 年就根据 Topbook 的 GTD 系列视频 做了 #时间管理 的 笔记,但在生活和工作上还是杂乱无章,拖延瞎忙。如有不错的 #自我管理 方法,还请在评论区不吝赐教。 #GTD (Getting Things Done )直接翻译为「把事情做完」,本身就很可能让人误解成:你必须做完所有的事情。更贴切的翻译是:「把事情处理完」或者「把事情做好」,因为你不可能完成所有事情。by Topbook(高效生活视频书,让工具回归工具,让你成为你。)

Fang的资源分享群

@flmdongtianfudi · Post #15519 · 21.12.2025 г., 11:59

《搞定:让你远离忙乱的GTD时间管理法》,时间管理+效率提升+系统化方法 通过详细介绍GTD(Getting Things Done)时间管理法,提供系统化的工具与技巧,帮助读者理清思路,提升工作与生活的效率,减少忙乱感。 🔗:https://pan.quark.cn/s/2a542dd7045c https://pan.baidu.com/s/1htL124ofuCz67FXSI_otHw?pwd=kcc8 #时间管理#GTD#效率提升#系统化方法#忙乱管理#生活规划 🔔Twitter👥频道💬群组

硬核小卒

@yinghexiaozu · Post #733 · 28.12.2020 г., 11:23

1️⃣Ronen Amiel - Build Your Own Webpack:一个 40 分钟的视频,手把手教你写一个 Webpack 打包器,让你深刻理解 Webpack 的工作原理。#Webpack#编程 2️⃣每个程序员都应该挑战的项目:作者列举了几个有点难度的小项目,包括文字编辑器、迷你操作系统、2D 游戏、编译器、电子表格软件、游戏模拟器等,做这些小项目对于提高编程水平有很大的帮助。最近,该博客主出了第二个系列。#编程#挑战 3️⃣GTD 时间管理法则:如果你不太会用 Todo 应用来管理自己的时间,不妨看看这篇详细的博客。#GTD#Todo 4️⃣译文|深度解读 Apple ProRAW 功能:如题,很详细的一篇文章。#Apple#ProRAW 5️⃣ “努力就会成功”:努力只是成功的必要条件,不是充要条件,并且要在关键的地方努力,而不是无脑地努力。#努力#成功#思考 Automatically sent by Hardcore Bot v0.9.2