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 слични објави

Пребарај: #namecheap

当前筛选 #namecheap清除筛选
折腾实验室频道

@TossLabChannel · Post #776 · 18.09.2025 г., 06:12

#域名#Namecheap#羊毛 薅羊毛Namecheap Winback 首年免费域名 Namecheap 推出“Winback”活动,吸引老用户回归。 优惠包括: 首年可领取 .ONLINE、.SITE、.STORE 等免费域名, 热门域名如 .COM、.NET、.CO 等也有 20%-65% 折扣。 同时,虚拟主机、VPS、邮箱及 WordPress 托管等服务首年都有大幅优惠。 折腾频道机友们,需注意,优惠为首年有效,续费按标准价格执行! 🔘@TossLab🔘@TossLabChannel

耕读频道

@iGengdu · Post #660 · 22.12.2024 г., 04:23

#域名#NameCheap#推荐#news#分享 域名注册商Namecheap提供新的域名 .news注册;目前搞活动,第一年免费,续费31.98$/年。 注册地址: https://www.namecheap.com/domains/registration/gtld/news/ 促销码:🎉 PROMO CODE: FREEDOM24 使用说明:尽量用新的Namecheap账号,促销码需要审核。🤝🤝目前注册需要干净IP或邮箱。 12月23日更新:促销码据说已失效。 后续更新:很多通过促销码获得的免费域名,已经被Namecheap收回。 📢频道✈️群组 (耕读)📬投稿

#域名#NameCheap#推荐#news#分享 域名注册商Namecheap提供新的域名 .news注册;目前搞活动,第一年免费,续费31.98$/年。 注册地址: https://www.namecheap.com/domains/registration/gtld/news/ 促销码:🎉 PROMO CODE: FREEDOM24 使用说明:尽量用新的Namecheap账号,促销码需要审核。 📢频道✈️群组 (耕读)📬投稿

CMLiussss 技术干货分享

@CMLiussss_channel · Post #179 · 22.12.2024 г., 06:26

#域名#NameCheap#推荐#news#分享 域名注册商Namecheap提供新的域名 .news注册;目前搞活动,第一年免费,续费31.98$/年。 注册地址: https://www.namecheap.com/domains/registration/gtld/news/ 促销码:🎉 PROMO CODE: FREEDOM24 使用说明:尽量用新的Namecheap账号,促销码需要审核。 📢频道✈️群组 (耕读)📬投稿

折腾实验室频道

@TossLabChannel · Post #426 · 22.12.2024 г., 06:39

#免费域名#Namecheap#羊毛 免费领取一年 news 域名教程 不限新老用户,免费享一年域名及隐私保护! 1. 搜索域名 前往 Namecheap,搜索心仪的 .news 域名。 2. 注册账户 添加域名至购物车,选择「注册新账号」。 3. 输入优惠码 在购物车页面使用代码:FREEDOM24,确认金额为 $0。 4. 完成订单 • 关闭「AUTO-RENEW」防止自动续费。 • 填写真实账单地址(支持中国地址),联系电话可使用 +86 或 Google Voice。 快去试试,轻松拥有属于自己的news 域名! 📢 群聊: @TossLab 🎈 频道: @TossLabChannel ❤️不想错过精彩内容,请打开 #频道通知,你的 #阅读#点赞#转发 便是我发帖的最大动力!

乌鸦观察

@Bigcrowdev · Post #22500 · 01.03.2022 г., 22:18

#俄罗斯#乌克兰#制裁#支付#平台#域名注册商#谷歌 【Namecheap 告诉俄罗斯客户寻找其他注册商】 域名注册商 #Namecheap 表示,‌该公司将不再与在俄罗斯注册的公司和个人开展业务,这迫使他们寻找新的域名注册商。 Namecheap称,"由于俄罗斯政权在乌克兰的战争罪行和侵犯人权行为,‌我们将不再向在俄罗斯注册的用户提供服务",“虽然我们同情这场战争可能不会影响你对此事的看法或意见,但事实是,你的专制政府正在侵犯人权和从事战争罪行,所以这是我们做出的政策决定,‌并将坚持下去。”(vice) 【万事达封禁部分俄罗斯金融机构,部分俄罗斯银行卡不再支持 Apple Pay 和 Google Pay】 #万事达 卡已对俄部分金融机构禁用2月28日,万事达卡网站发布声明称,‌“由于对于俄罗斯的制裁令”,‌该公司已封禁部分俄罗斯金融机构使用其支付系统的权限。 推特上还流传消息称,‌2月28日晚间,‌由于莫斯科地铁支付系统中无法使用 #ApplePay 和 #GooglePay,‌当地乘客只能翻找现金,‌排起长长的买票队伍。该条信息最先发布于爱尔兰记者杰森·科克兰(Jason Corcoran)的推特账号,‌他自称报道俄罗斯及独联体事务已经15年,‌曾在彭博社、《金融时报》等媒体供职,‌其定位显示在俄罗斯莫斯科。(Engadget)(塔斯社)(观察者网) 此外,‌#SpaceX 向乌克兰交付了连接该公司星链卫星网络服务的终端。(华盛顿邮报) 【谷歌暂时关闭在乌克兰的谷歌地图实时交通信息】 路透社消息,‌谷歌宣布已暂时关闭在乌克兰的 #谷歌地图 实时交通信息,‌在与包括地区当局在内的消息来源协商后,‌将为当地社区的安全采取行动。 此前,乌克兰内政部要求当地居民关闭手机中的地理定位功能,以避免为敌人的导航提供信息。(界面新闻)(路透社)