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

Резултати

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

Пребарај: #help

当前筛选 #help清除筛选
ANOTHER DAY

@andanotherday · Post #2011 · 11.10.2024 г., 04:45

Что движет нашими решениями экономического характера? Французский экономист Жан Тирол предложил три драйвера человеческих решений, чтобы найти ответ на этот сложный вопрос. Первый драйвер — это идея о том, что мы достигли общественного блага. Второй — получение выгоды за какой-то поступок во благо общества. Третий драйвер куда проще, чем может показаться на первый взгляд: мы беспокоимся о своём имидже. «Мы хотим быть удовлетворены собой. Мы также хотим, чтобы окружающие думали, что мы удовлетворены собой», — объяснил Жан Тироль свою мысль. Эти драйверы являются частью экономической модели, которую он описал в своей последней книге «Economics for the Common Good». Жан Тирол является одним из ведущих экономистов мира. В 2014 году он удостоился Нобелевской премии за свой анализ регулирования рынка и фактора монополии. Исследования профессора Тироля охватывают вопросы организации промышленности, регулирования, финансов, макроэкономики и банковского дела, а также экономики, основанной на психологии. Так вот, 14 октября Тирол выступит в Ташкенте с лекцией о своей теории общего блага. Лекция коммерческая. Билеты можно приобрести по ссылке: https://bit.ly/3TUxz8k Публичная лекция организована Сообществом молодых экономистов Университета «Новый Узбекистан» совместно с Клубом «Заковат». Не реклама. Я не получал деньги за этот пост. #help @andanotherday

Hashtags

YuKongA | Channel

@YuKongA13579 · Post #1575 · 05.10.2025 г., 01:15

求助:我的一加 Ace5Ultra 突然用不了字体模块了 装了之后开机二屏卡半天进去黑屏,只能呼出原生关机界面 有遇到过的么,咋办哇,用 oddo 的字体我要死了 已解决,因为更新了 zn, 扔掉 shamiko 换 font loader 就好了。 一加与小米不同,用字体模块必须有 zygisk + shamiko 或者 zygisk + font loader 环境才行。小米这边我用了这么久没遇到这个问题,似乎不需要 zygisk 也行。 #help

Hashtags

YuKongA | Channel

@YuKongA13579 · Post #1554 · 24.09.2025 г., 06:04

怎么彻底解决这玩意 已解决 https://github.com/orgs/community/discussions/6874?sort=new#discussioncomment-14481784 人话(你可以自己改notifications.json,否则就是清空通知): 1、gh api --method PUT /notifications -F read=true 2、curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(gh auth token)" \ -H "X-GitHub-Api-Version: 2022-11-28" \ 'https://api.github.com/notifications?all=true&since=2025-09-20T00:00:00Z' > notifications.json 3、for THREAD_URL in $(jq -r '.[].url' notifications.json); do curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(gh auth token)" \ -H "X-GitHub-Api-Version: 2022-11-28" \ "$THREAD_URL" done 4、rm notifications.json #help

Hashtags

YuKongA | Channel

@YuKongA13579 · Post #1274 · 10.03.2025 г., 08:47

求助:如何在国产Linux (UOS)系统中连接 Windows 共享打印机,打印机型号是 HP LaserJet Professional P1108。我尝试了 USB 直连 UOS 的情况下,手动选 UOS 内置的 HP LaserJet P1020 驱动是可以打的。目前的情况是:有线连 UOS 开共享,Windows 能找到设备但是打不了;有线连 Windows 开共享,UOS 也能找到设备但是打不了。后续这类问题会越来越多,因为不能申请 Windows 电脑了😅 补充条件:内网环境,没外网。打印机自己啥也不支持。 #help

Hashtags

Анонсы Прогулок/The Walks

@dikieprogulki · Post #1265 · 05.05.2025 г., 19:42

#help Дорогие подписчики, родители, друзья, коллеги, люди, львы, орлы и куропатки! Мы очень ищем место для репетиций и спектаклей нашего юношеского театра «ТЭЗиС» в Хайфе. К сожалению, место, в котором ребята репетировали последние месяцы, больше недоступно. Конечно, мы мечтаем о своем пространстве (обуютим, полюбим, сделаем живым, любой миклат сгодится). Но даже место, куда нас могут пускать по вторникам и четвергам на репетиции в ближайшие 2 месяца уже будет большой поддержкой. Тут важно добавить, что театру «ТЭЗис» 2,5 года. За это время в нем играли более 60 ребят от 11 лет до 21 года. И не только играли, но ставили спектакли, придумывали декорации, писали музыку и пьесы. Ребята выпустили уже 9 спектаклей. (Кто видел, подтвердит, что это живо, мощно и талантливо!) Участие в нашем театре для ребят совершенно бесплатное. Если у вас есть идеи, контакты в муниципалитете Хайфы или в её культурных пространствах, пустующий зал и прочее-прочее, пожалуйста, пишите @fuftatfuf (у неё же можно запросить письма о театре на иврите и английском). Всем участникам и взрослым очень важен наш живой, умный, смешной, дерзкий юношеский хайфский театр. Но театр невозможен без пространства. (Всяческое распространение этого воззвания приветствуется!)

Hashtags

🫠 崩溃了,请问有了解现在 Twitter list RSS 订阅方法的吗? 之前我一直用的 Twitter Atom feeds,通过授权推特 API 方式烧制 list RSS,推特关 API 后这个网站也关了,但是我还能一直用。今天我修改推特 userid 后,忘记了这个关系,之前的 RSS 就用不了,id 改回来也用不了。麻了,我一半的订阅都 twitter list 收集的内容。#help 爆笑了,id 改回来后,现在好了!

Hashtags

Save The Web Project

@saveweb · Post #459 · 28.02.2025 г., 10:56

前情提要:「关于竹白的下线通知」 目前已经存完了 790 个竹白专栏(子域名),WARC 也已上传。但因为没有好方法发现全部的有效子域名,所以有遗漏。 擅长子域名发现的师傅可以试试找找 *.zhubai.love 的域名。 如发现了不在 subdomains-deduped.urls.txt 中的有效域名,欢迎 PR 。 #help

Hashtags

WhiteManOnTheWeb

@WhiteManOnTheWeb · Post #107 · 24.06.2020 г., 22:00

This is desktop Telegram-specific and I have very few followers, so I doubt it will reach many people; nevertheless I will post it. Locally storing files is a good thing to do. The Internet may go out or you may feel a need to hoard data. In our sphere the latter is quite likely. Saving a large amount of files from a Telegram chat/channel can be done easily. Here are two ways to do so: 1. Click the three vertical dots in the upper right of any chat/channel. Click "export chat/channel history". Select whatever options you desire, even the date range. 2. Click an image/gif/video so that it maximizes on the screen. Right click the displayed media and click "view all photos/files". In this screen, all files of the selected type can be selected by Shift-clicking individually or by dragging with the mouse; the selected files can then be saved by right clicking just one of the selected files. You can also use this method to mass-delete messages in a chat/channel you are admin of. For phone users: Get a desktop computer. #help

Hashtags

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