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

Резултати

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

Пребарај: #early

当前筛选 #early清除筛选
TN MiniCrypto Official

@swift_airdrops · Post #5897 · 13.07.2025 г., 15:59

✨ Airdrop Offline Protocol JustGrant device permissions for Bluetooth and location access so Fernweh can create mesh connections to farm Daily points 🥳🥳🥳#Early 👉 Airdrop registration link :- https://id.offlineprotocol.com?referral=PH98F3 ➖ Login with Email and claim ur username (Use small letters) ➖ You’ll instantly get 250 points for setting a username ➖ Go to Profile & link your Twitter, Discord, and Telegram accounts ➖ Download the Fernweh App ➖ Login using the same email ➖ Go to App Settings ➖ Maintain your daily streak to earn even more rewards #Note :- Join early and get more rewards Don't skip hurry up today

Hashtags

TN MiniCrypto Official

@swift_airdrops · Post #5861 · 02.07.2025 г., 11:57

✨ Airdrop KEY Blockchain is new L1 Project & While mining KEY, you can also mine BTC simultaneously 🌀 🌀 It's $Free $Free $Free $Free $Free ✅ Total Supply :- 97M Only 🌀 Mining Amount: 40M Only 👉 Airdrop registration link :- https://www.key.top/#/pages/index/index/?k=GZD762PQ ➖ Click on Register ➖ Enter your email & password (ignore the country) ➖ Comfirm referral code :- GZD762PQ ➖ Copy & save your private key (don't misplace it) ➖ Verify your private key ➖ Login with your details ➖ Active mining once daily ➖ Done! #Note :- Frens It's new Alpha L1 project don't skip & Get Free $KEY For all those who registered & if you are #Early will get higher #hashpower

Journey to Fluency

@fluencyinenglish · Post #7285 · 09.08.2019 г., 08:53

#grammar #soon #early #quickly @fluencyinenglish ❇️Soon, Early and Quickly Soon means ‘a short time after now’. Get well soon. (NOT Get well early.) We will launch a new edition of this book sometime soon. Soon can also mean ‘a short time after then’. It was difficult in the beginning, but I soon got used to it. (NOT It was difficult in the beginning, but I early got used to it.) @fluencyinenglish Early Early means ‘near the beginning of a period of time we are talking about’. Early does not mean soon. Compare: Early this week, I had a strange experience. (NOT Soon this week, I had a strange experience.) He had an accident early this month. He will soon have an accident if he continues to drive like this. (NOT He will early have an accident…) I get up early in the morning. (NOT I get up soon in the morning.) Early can mean ‘before the expected time’. I arrived early. Early can be used as an adjective. We will be grateful for an early reply. @fluencyinenglish Quickly There is a difference between soonand quickly. We use quickly to refer to the speed with which something is done. Soon means ‘before long’. I got dressed quickly. (= I didn’t take a lot of time to get dressed.) @fluencyinenglish

TN MiniCrypto Official

@swift_airdrops · Post #5390 · 25.08.2024 г., 03:22

✅✅✅✅#Official KuCoin and TON Present Frog Trader #Minigame on Telegram! 🤩 Brought to you by KuCoin, a leading global crypto exchange trusted by one in four crypto holders worldwide! #Get Upto 2 lack coins 🐸 Welcome reward of 10K Frog Coins! join fast guys :- https://t.me/xkucoinbot/kucoinminiapp?startapp=cm91dGU9JTJGdGFwLWdhbWUlM0ZpbnZpdGVyVXNlcklkJTNEMTA0ODM5NjMwMSUyNnJjb2RlJTNEUUJBWkdRQUs= ➖ Click on bot ➖ Check your telegram age ➖ Link your kucoin exchange account ➖ Connect telegram wallet only ➖ Premium users will get 50k #Note :- Don't skip #early users will get more benefits join fast before end 📈

VIP_影视分享

@wangzhuanzhan · Post #33202 · 19.09.2024 г., 06:30

W-w无w敌d原y始s人r - 无敌原始人 Early Man (2018) (普通话) 直达链接:https://pan.quark.cn/s/a6db6fddbd77 #无敌原始人#Early Man #石器小英雄#超级无敌世界波#早期人类 链接:https://link3.cc/sf_com #电影#喜剧#美国#10年代

VIP_影视分享

@wangzhuanzhan · Post #33201 · 19.09.2024 г., 06:27

W-w无w敌d原y始s人r- 无敌原始人 Early Man (2018) 直达链接:https://pan.quark.cn/s/54f53a99b51e #无敌原始人#Early Man #石器小英雄#超级无敌世界波#早期人类 链接:https://link3.cc/sf_com #电影#喜剧#美国#10年代