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

Резултати

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

Пребарај: #shooter

当前筛选 #shooter清除筛选
APKPure_Official

@apkpurechannel · Post #2260 · 23.02.2025 г., 15:00

🔁[MOD UPDATE]🔁 FRAG Pro Shooter MOD APK 4.5.2 UPDATE Experience thrilling FPS gameplay with unique characters, vibrant maps, and exciting modes. 🎮💥 Team up and show your skills today! 🕹Download Now🕹 Game Features: - Publisher: Oh BiBi - Version: 4.5.2 - Size: 207.4 MB - Category: #Action, #Shooter - MOD Info: Unlimited Resources Add @APKFreeDownloader_Bot to get any apk you want.

MoonPlay

@moonplay_official · Post #39 · 23.06.2024 г., 16:13

SHOOT ‘EM UP 💫 Hey Space Cadets! This Friday brought you one more way to earn 💸. We’re over the moon to announce the launch of a fascinating mini-game, Star Dust💫, on To The Moon! Get ready to navigate your ship through an asteroid belt and blast your way to cosmic riches. ✅Asteroid Blasting Action: Use your ship's blaster to shoot and destroy falling asteroids. Different types of asteroids offer different amounts of Space Bucks, so aim and fire! ✅Finger Press Control: Keep your finger pressed on the screen to fire. ✅Level-Based Rewards: The amount of Space Bucks you collect for shooting asteroids is based on your player level. The higher your level, the bigger your rewards! ✅Durable Ship: Don’t worry if you miss a few asteroids—your ship is built to withstand the hits. Play to your heart’s content, once you’ve had enough, just press the cross at the upper right corner to exit and collect space bucks. Ready to dive into the asteroid belt and rack up those Space Bucks? Head to the Play tab andget started🚀. May your blasters be swift and your aim true! Stellar adventures start here:@moon_land_bot🚀 Website | Telegram Chat | X | Discord | Medium #ToTheMoon#MoonPlay#ecosystem#blockchain#gamefi#web3#wenlisting#airdropsoon#communityfirst#taptap#clicker#game#invitefriends#shooter

Видеотека 📼

@videotekashow · Post #13599 · 05.06.2025 г., 03:45

«Я готов хоть траншеи копать, и актерство — не главное в моей жизни». Сегодня Марку Уолбергу исполнилось 54 года. #ВИДЕОТЕКА #MarkWahlberg #BoogieNights #TheCorruptor #TheItalianJob #TheDeparted #Shooter #WeOwnTheNight #TheFighter #PainAndGain #PatriotsDay #ArthurTheKing