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

Резултати

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

Пребарај: #teachersday

当前筛选 #teachersday清除筛选
Learn RCRussian🤍💙❤️

@learnRCRussian · Post #5515 · 05.10.2025 г., 11:00

A teacher used AI to show his students their possible future based on their dreams. 🔻He input their career aspirations into a neural network, which generated realistic images of them as adults in their dream jobs. A powerful lesson about the future being in their hands! #AI #TeachersDay 😎RCR | Support | Boost

EU in Kazakhstan 🇪🇺🇰🇿

@euinkazakhstan · Post #1542 · 03.10.2025 г., 12:47

On the eve of World Teachers’ Day 📚✨ we honor educators worldwide for their dedication, patience, and the immeasurable impact they have on shaping minds and building the future. **** Дүниежүзілік Ұстаздар күні қарсаңында 📚✨ біз бүкіл әлем ұстаздарының еңбегіне, төзіміне және болашақты қалыптастыруға қосқан өлшеусіз үлесіне алғыс айтамыз. #TeachersDay#ҰстаздарКүні

Learn RCRussian🤍💙❤️

@learnRCRussian · Post #5514 · 05.10.2025 г., 10:23

🥧 𝑯𝒂𝒑𝒑𝒚 𝑻𝒆𝒂𝒄𝒉𝒆𝒓'𝒔 𝑫𝒂𝒚! 🥧 𝑰'𝒗𝒆 𝒂𝒍𝒘𝒂𝒚𝒔 𝒅𝒓𝒆𝒂𝒎𝒆𝒅 𝒐𝒇 𝒃𝒆𝒄𝒐𝒎𝒊𝒏𝒈 𝒂 𝒕𝒆𝒂𝒄𝒉𝒆𝒓 – 𝒂𝒏𝒅 𝒏𝒐𝒘 𝑰'𝒎 𝒍𝒊𝒗𝒊𝒏𝒈 𝒕𝒉𝒂𝒕 𝒅𝒓𝒆𝒂𝒎! 𝑰 𝒕𝒓𝒖𝒍𝒚 𝑳𝑶𝑽𝑬 𝒎𝒚 𝒋𝒐𝒃 𝒂𝒏𝒅 𝒎𝒚 𝒘𝒐𝒏𝒅𝒆𝒓𝒇𝒖𝒍 𝒔𝒕𝒖𝒅𝒆𝒏𝒕𝒔! ❤️ 𝑰 𝒌𝒏𝒐𝒘 𝒎𝒂𝒏𝒚 𝒐𝒇 𝒎𝒚 𝒇𝒐𝒍𝒍𝒐𝒘𝒆𝒓𝒔 𝒂𝒓𝒆 𝒂𝒍𝒔𝒐 𝒕𝒆𝒂𝒄𝒉𝒆𝒓𝒔, 𝒔𝒐 𝑰 𝒘𝒂𝒏𝒕 𝒕𝒐 𝒔𝒂𝒚 𝒅𝒊𝒓𝒆𝒄𝒕𝒍𝒚 𝒕𝒐 𝒎𝒚 𝒅𝒆𝒂𝒓 𝒄𝒐𝒍𝒍𝒆𝒂𝒈𝒖𝒆𝒔: 𝑻𝒉𝒂𝒏𝒌 𝒚𝒐𝒖 𝒇𝒐𝒓 𝒆𝒗𝒆𝒓𝒚 𝒍𝒆𝒔𝒔𝒐𝒏 𝒚𝒐𝒖 𝒕𝒆𝒂𝒄𝒉, 𝒃𝒐𝒕𝒉 𝒊𝒏𝒔𝒊𝒅𝒆 𝒂𝒏𝒅 𝒐𝒖𝒕𝒔𝒊𝒅𝒆 𝒕𝒉𝒆 𝒄𝒍𝒂𝒔𝒔𝒓𝒐𝒐𝒎. 𝑻𝒉𝒆 𝒊𝒎𝒑𝒂𝒄𝒕 𝒚𝒐𝒖 𝒉𝒂𝒗𝒆 𝒐𝒏 𝒚𝒐𝒖𝒓 𝒔𝒕𝒖𝒅𝒆𝒏𝒕𝒔 𝒍𝒂𝒔𝒕𝒔 𝒂 𝒍𝒊𝒇𝒆𝒕𝒊𝒎𝒆 – 𝒚𝒐𝒖'𝒓𝒆 𝒃𝒖𝒊𝒍𝒅𝒊𝒏𝒈 𝒕𝒉𝒆 𝒇𝒐𝒖𝒏𝒅𝒂𝒕𝒊𝒐𝒏 𝒇𝒐𝒓 𝒕𝒉𝒆𝒊𝒓 𝒇𝒖𝒕𝒖𝒓𝒆, 𝒏𝒖𝒓𝒕𝒖𝒓𝒊𝒏𝒈 𝒕𝒉𝒆𝒎 𝒘𝒊𝒕𝒉 𝒄𝒂𝒓𝒆, 𝒂𝒏𝒅 𝒔𝒉𝒂𝒑𝒊𝒏𝒈 𝒕𝒉𝒆𝒊𝒓 𝒄𝒉𝒂𝒓𝒂𝒄𝒕𝒆𝒓. 𝑻𝒐𝒅𝒂𝒚, 𝒎𝒂𝒚 𝒚𝒐𝒖 𝒇𝒆𝒆𝒍 𝒕𝒉𝒆 𝒅𝒆𝒆𝒑 𝒓𝒆𝒔𝒑𝒆𝒄𝒕 𝒂𝒏𝒅 𝒈𝒓𝒂𝒕𝒊𝒕𝒖𝒅𝒆 𝒚𝒐𝒖 𝒕𝒓𝒖𝒍𝒚 𝒅𝒆𝒔𝒆𝒓𝒗𝒆. 𝑩𝒆 𝒑𝒓𝒐𝒖𝒅 𝒐𝒇 𝒕𝒉𝒆 𝒗𝒊𝒕𝒂𝒍 𝒓𝒐𝒍𝒆 𝒚𝒐𝒖 𝒑𝒍𝒂𝒚 𝒊𝒏 𝒔𝒉𝒂𝒑𝒊𝒏𝒈 𝒕𝒐𝒎𝒐𝒓𝒓𝒐𝒘'𝒔 𝒈𝒆𝒏𝒆𝒓𝒂𝒕𝒊𝒐𝒏! 🍎С Днём Учителя! 𝑯𝒂𝒑𝒑𝒚 𝑻𝒆𝒂𝒄𝒉𝒆𝒓'𝒔 𝑫𝒂𝒚! 𝑵𝒂𝒕𝒂𝒍𝒊𝒆 𝒘𝒊𝒕𝒉 💓 𝒂𝒏𝒅 𝒂𝒑𝒑𝒓𝒆𝒄𝒊𝒂𝒕𝒊𝒐𝒏! #TeachersDay #RussianTeacher #HappyTeachersDay #holidays

CNC Electric Uzbekistan

@electromaxgroup · Post #909 · 01.10.2020 г., 05:14

Уважаемые учителя и наставники! Команда CNC electric от всего сердца поздравляет Вас с профессиональным праздником. Хотим пожелать процветания, благополучия и творческого вдохновения. Спасибо Вам за преданность, терпение и мудрость! #songri#songrielectric#songriuzbekistan#cnc#cncelectric#cncuzbekistan#cnctashkent#digitop#digitopuzbekistan#teachersday