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

Резултати

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

Пребарај: #pt

当前筛选 #pt清除筛选
SIN LÍNEA MX (OFICIAL)

@SINLINEAMXnoticias · Post #31084 · 26.03.2026 г., 14:47

🚨 ¡IMPORTANTE! 🚨 🔴 Esta fue la reserva que presentó el #PT para echar abajo el tema de la revocación de mandato en la elección del 2027 ❌🗳️👇🏻

Hashtags

xz の 小站

@xjzim · Post #6281 · 06.12.2021 г., 09:41

Torrentleech PT站开放注册 - http://www.torrentleech.org/ - 注册码 XMAS2021 - 无考核 简介: 0day类型资源站,站点运营时间十多年,资源也达到了几十万的数量,会员达到了十多万。 —————— PS:今天看到有人发,就顺带分享下,顺便说下国外PT站的一些的情况。 一般国外PT站不同于国内PT站,大部分基本都无硬性考核要求。比如注册一个月内下XX GB 上传 XX GB,分享率到达 XX 这种。国外一般都是注册后默认给一定上传量即 upload quota,之后你可以挑选你喜欢的种子下载,做种率必须高于一定比例 即 ratio,否则账户会失去下载权力甚至被ban。 此站我印象中17年初就注册了,此站注册不给任何上传量,即你的 upload; download, ratio 三项默认均为0。当你开始下种后便开始算入download,并影响你的ratio。且此站硬性保种需要10天以上,否则算H&R。建议新手直接选择大于14GB的默认 free 资源先把数据刷上去。 —————— 综合来说不建议 PT 新手盲目冲。此站作为国外PT站,资源上还行,算是靠前的,但是缺乏国内本土资源。且盒子用户较多,上传数据较为难刷。上传刷不上去的,可以折中选择保种赚取points换上传量。「可以理解为国内PT站的魔力值系统」 —————— 如果使用服务器下种/做种;注册后要登记seedbox信息 点自己的账号,然后seedboxes标签,填上ip,provider和网速保存;再点profile,在has seedbox变成yes即可 #pt

Hashtags

iShare News

@iShareNews · Post #713 · 06.08.2021 г., 14:29

#PT 高清阿童木站—开注3天 8月8是1周年生日。 高清阿童木站 计划在8月7日~8月9日,开放注册三天。 注册地址:https://hdatmos.club ● 频道 @iShareNews

Hashtags

iShare News

@iShareNews · Post #691 · 28.06.2021 г., 01:26

#PT HDarea高清视界开放注册 👉注册地址 https://www.hdarea.co/ 6.27开始,为期一周。 ● 频道 @iShareNews

Hashtags

iShare News

@iShareNews · Post #681 · 31.05.2021 г., 10:37

#PT BTSchool开放注册 六一(2021.06.01)当天,网站开注6小时(10:00~~16:00) 👉注册地址 ● 频道 @iShareNews

Hashtags

iShare News

@iShareNews · Post #675 · 28.05.2021 г., 05:21

#PT 铃音开放注册 本站将于即日起全站free并开放注册到6月1日,喜欢学习的不要错过。 👉注册链接 ● 频道 @iShareNews

Hashtags

iShare News

@iShareNews · Post #660 · 05.05.2021 г., 14:40

#PT skyeysnow/天雪动漫PT站开放注册 资源特色就是动漫了,喜欢动漫的不要错过。 👉注册地址 ● 频道 @iShareNews

Hashtags

iShare News

@iShareNews · Post #658 · 05.05.2021 г., 14:24

#PT HDtime/高清时间 开放注册 小白最爱,免新人考核 👉注册地址 ● 频道 @iShareNews

Hashtags

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