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

Резултати

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

Пребарај: #start

当前筛选 #start清除筛选
Russian Embassy in Albania

@rusembalb · Post #7388 · 22.09.2025 г., 14:44

⚡ Nga deklarata e Presidentit të Rusisë V.Putin në një mbledhje operative me anëtarët e përhershëm të Këshillit të Sigurimit (Moskë, 22 shtator) 💬 Situata në fushën e stabilitetit strategjik, për fat të keq, vazhdon të përkeqësohet, gjë që u shkaktua nga ndikimi i kombinuar i një numri faktorësh, disa prej të cilëve të natyrës negative, duke provokuar përshkallëzimin e rreziqeve ekzistuese strategjike dhe duke krijuar ato të reja. Si rezultat i hapave mjaft shkatërrues të ndërmarrë më parë nga vendet perëndimore, themelet e marrëdhënieve konstruktive dhe bashkëpunimit praktik midis shteteve të armatosura me armë bërthamore janë minuar ndjeshëm. Themelet për dialog në formatet përkatëse dypalëshe dhe shumëpalëshe janë tronditur. Hap pas hapi, sistemi i marrëveshjeve sovjetiko-amerikane dhe ruso-amerikane mbi kontrollin e raketave bërthamore dhe armëve mbrojtëse strategjike është çmontuar pothuajse plotësisht. <...> 👆 Dua të theksoj, dhe askush nuk duhet ta vërë në dyshim këtë: Rusia është e aftë t'i përgjigjet çdo kërcënimi ekzistues dhe atij të ri, jo me fjalë, por përmes përdorimit të masave ushtarako-teknike.<...> Më lejoni t'ju kujtoj se arritja e fundit e rëndësishme politike dhe diplomatike në fushën e stabilitetit strategjik ishte nënshkrimi i Traktatit ruso-amerikan të Armëve Ofensive Strategjike në vitin 2010. 🚫Traktati #START skadon më 5 shkurt 2026, duke shënuar zhdukjen e shpejtë të marrëveshjes së fundit ndërkombëtare mbi kufizimet e drejtpërdrejta të potencialit të raketave bërthamore. Për të shmangur provokimin e një gare të mëtejshme të armëve strategjike, si dhe për të siguruar një nivel të pranueshëm parashikueshmërie dhe përmbajtjeje, besojmë se është e justifikuar të përpiqemi të ruajmë në periudhën aktuale, mjaft të trazuar, statusin quo të vendosur nga Traktati START. ❗️Prandaj, Rusia është gati të vazhdojë t'u përmbahet kufizimeve qendrore sasiore të Traktatit START për një vit pas 5 shkurtit 2026. <...> Ne besojmë se kjo masë do të jetë e zbatueshme vetëm nëse SHBA-ja vepron në një mënyrë të ngjashme dhe nuk ndërmerr hapa që dëmtojnë ose shkelin ekuilibrin ekzistues të potencialeve parandaluese. Lexoni të plotë

Hashtags

Ton Cryptans

@toncryptans · Post #2434 · 06.04.2025 г., 10:04

🏁Новая площадка для торговли подарками 🤩 Друзья, представляем крупное обновление для маркетплейса StarT, добавляющее функционал торговли редкими коллекционными подарками Telegram! Теперь с помощью StarT вы можете 🔜 Покупать и продавать коллекционные подарки внутри Telegram 🔜 Совершать моментальные сделки 🔜 Создавать собственный мини-маркет редкостей 🔜 Получать оплату в TON 🔜 Зарабатывать с честной системой реферальных вознаграждений 🔜 Выводить заработанные активы на свой криптокошелёк ➡️ Это один из первых маркетплейсов подобного формата в Telegram - вы можете не только покупать и продавать товары и услуги, но и зарабатывать на коллекциях редких подарков! 💪StarT предлагает одни из самых низких комиссий среди всех маркетплейсов в Telegram. 🤩 Сам все проверил, все работает. Механики торговли схожи с остальными маркетплэйсами, но комиссии ниже. Тема торговли подарками сейчас актуальна. Нужно пользоваться возможностью. Сам приторгую на площадке 😉 ❗️ Маркетплейс взял себе более подходящее имя @gift_mplace_bot, но все функции остаются прежними! ❗️Под каждым постом, комментарий, продержавшийся 15 минут не перекрытый следующим комментарием, получает подарок TG #StarT - - - - - - - - - - - - 🤓Ton Cryptans | Чат | UNI - - - - - - - - - - - - 🤓Игры | ⭐️ Купить STARS - - - - - - - - - - - - How to read our content in your language / فارسیفارسی

Hashtags

SeeYoUzbekistan

@seeyouzbekistan · Post #7 · 08.11.2024 г., 18:14

🇺🇿 O'zbekiston turizmini xalqaro maydonga olib chiqish va rivojlantirishga hissa qo‘shish, yurtimizning madaniyati, urf odatlari va arxitekturasi bo‘yicha ma’lumotlar, rasm va video kontentlar hamda yurtimizdagi Siz bilmagan manzillarni Sizga ulashish maqsadida yangi “SeeYoUzbekistan” loyihasini taqdim etamiz. ✊Bizning jamoamizga qo‘shilishni va qo‘llab quvvatlashni istasangiz sahifalarimizga obuna bo‘ling va birozdan so‘ng “Mustaqillik va ezgulik” monumenti haqidagi ilk postimizni ulashamiz. #SeeYoUzbekistan#start @seeyouzbekistan • O’zbekistonni biz bilan kashf eting!

Texnika Universiteti (TDTU)

@toshkent_davlat_texnika_univer · Post #2411 · 22.08.2025 г., 22:54

#diqqat#start Yangi o‘quv yili oliy ta’lim muassasalarining 1-kurs talabalari uchun 3-sentabrdan, yuqori kurslarga esa 8-sentabrdan boshlanadi. O’zingizni qiziqtirgan boshqa savollarga javobni @milliy hamda @students guruhlaridan olishingiz mumkin!

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