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

Резултати

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

Пребарај: #henpri

当前筛选 #henpri清除筛选
Tomoko RD

@tomoko_channel · Post #1419 · 17.11.2025 г., 08:00

😂「不剪,进去」 你说的对,这些都是买 Mac 的理由~ 给大伙省流一下: Mac 能玩 galgame Mac 能存很多 galgame Mac 很轻,所以适合随时随地玩 galgame Mac 接口少,所以适合玩 galgame Mac 刷新率 60hz,适合玩 galgame Mac 续航很长,所以能玩很久的 galgame source#HENPRI

Hashtags

Tomoko RD

@tomoko_channel · Post #1256 · 21.09.2025 г., 09:15

玩过变态监狱 ヘンタイ・プリズン 评分: ★★★★★ 标签: galgame R18 视觉小说 ADV Qruppo #HENPRI 备注: 9/10 红林 -> 妙花 -> 千咲都(最喜欢诺亚了,尤其是诺亚个人线,有种被全程带飞的感觉)。 游戏全过程就像在玩一部拥有三条 IF 线、时长 50H、无厘头、童话化的 Gal 版《肖申克的救赎》,我愿称之为《郁金香的救赎》。 「他」从不会退缩,靠着爱与勇气反抗这个不公的制度顺便拯救身边周围的人。好几次失败我都觉得无比绝望,甚至想要劝「他」妥协放弃了。可惜没有任何选项,我只能眼睁睁看着。 直到「他」终是飞出狭小的牢笼,朝大海远去了。我才发现,在隔壁以全知视角看完一切的钉谷先生,就是屏幕外的我——那个安于高墙内的囚禁、逐渐被体制同化、对外界充满恐惧的自己。(那么我有得到救赎么?苦笑) PS. 特别感谢花丸凛大人,若非有您相助,断不会有如此圆满的结局。笑 :) http://www.douban.com/game/35704336/

Hashtags

Tomoko RD

@tomoko_channel · Post #1254 · 19.09.2025 г., 23:12

这又是什么摩斯密码了?! @爱丽丝频道: 发布视频-单机游戏-音MAD 播放量:7.65万 弹幕:24 评论:111 点赞:592 投币:47 收藏:453 转发:464 发布日期:2024-08-27 16:16:25 #HENPRI

Hashtags

Tomoko RD

@tomoko_channel · Post #1371 · 18.10.2025 г., 10:43

到手了,拆开包装后真是让我笑到了😂(这也太素了吧) 谢谢那个晚我两天去 TRADER 的同学,帮我带回来了~~ #HENPRI#Galgame