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

Резултати

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

Пребарај: #chdbits

当前筛选 #chdbits清除筛选
PT资讯频道

@PrivateTrackerNews · Post #529 · 27.05.2019 г., 15:43

#CHDBits 彩虹岛 招聘 为了创造更好的优质资源优化人员小组 经管理层讨论决定,进行一轮人事招聘 CHD字幕组 WEB-DL组 压制组 录制组 DIY原盘组正式招聘 本次招聘特招有经验的 新手暂时不考虑,有意加入CHD制作小组大家庭 可回复站内信或发信至管理组信箱咨询,期待着您的加入:) Recruitment In order to create a better quality resource optimization team, after a management discussion decision, a round of personnel recruitment CHD subtitle group WEB-DL group suppression group recording group DIY original group officially recruited this recruitment special recruit experienced novice temporarily not considered, interested in joining the CHD production team big family can reply to the station letter or send a letter to the management group mailbox consultation, Looking forward to your joining :)

Hashtags

PT风向旗

@Ptfxq · Post #734 · 22.09.2024 г., 04:01

#CHDBits#CHD 因为遭受攻击,CHD 开启了 CF 盾。 根据群友反馈,也有部分其他站点遭到了攻击并开启了盾。希望出现站点访问困难,tracker 无法连接的各位用户知悉这一情况。

Hashtags

PT风向旗

@Ptfxq · Post #712 · 24.08.2024 г., 15:00

#CHDBits#CHD HR规则恢复以及调整补充公告 1、三级置顶,标有H3、H5字样的种子均为HR种子。 2、HR种子下载大于等于50%时需要完成规定的保种时间,H3要求下载后20天内保种时间必须达到72小时,H5为20天内保种必须达到120小时。 3、HR种子未达标即扣除一个HP点,HP点数为0账号进入下载受限模式,失去下载权限。 4、HP初始值即封顶值为5,HP值为0或小于0的账号将失去下载权限 超过20天未转正将自动被系统封禁。 5、凡带有黄星标志及VIP会员(有效期内)均免除HR统计。 6. HP为负值,可使用做种积分进行兑换 https://chdbits.co/hnr.php?id=1 捐赠VIP将直接恢复原始值5。 PS: hr已正式上线,请注意rss,种子状态等。特别注意HP兑换未作记录,无法恢复请谨慎操。有条件的请截图保存各项数据,否则发生bug时只能按统一规格䃼偿。任何问题请在站点论坛上报,紧急情况请pm站内10000管理。

Hashtags

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