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

Пребарај: #welt

当前筛选 #welt清除筛选

Auf Anordnung des Zaren Peter I wurde am 8. Februar 1724 in St. Petersburg die Akademie der Wissenschaften gegründet. Traditionell feiern russische Wissenschaftler an diesem Datum den Tag der russischen Wissenschaft.🧑🏻‍🔬 🧬 Auch heute setzen Wissenschaftler Russlands diese bedeutenden Traditionen fort: Sie entwickeln die vielversprechendsten Bereiche der Wissenschaft, arbeiten an modernsten Technologien und bilden die nächste Generation von Studenten aus. Wissenschaft ist jedoch nicht nur Forschung und Zahlen, sie ist auch Inspiration, Schönheit und Staunen. Genau das zeigt die Ausstellung im Russischen Haus in Berlin: Ausstellung „Mach dir ein Bild von Wissenschaft!“🖼️ In dieser Ausstellung werden Aufnahmen präsentiert, die die Schönheit und die Geheimnisse der Welt um uns herum enthüllen: 🧑🏻‍🔬Wissenschaftler bei der Arbeit; 🌍 einzigartige Momente aus der Natur; 🔬 atemberaubende Ansichten, aufgenommen mit Hilfe der leistungsstärksten Mikroskope und Teleskope! Diese Bilder tragen dazu bei, die Wissenschaftzugänglicher zu machen, indem sie komplexe Forschungsprozesse in der verständlichen Sprache der Fotografie und Videografie vermitteln.❤️ 🗓️ Die Ausstellung ist bis zum 31. Juli 2026 zu sehen und befindet sich auf der 3. Etage des Hauses. 👀 Kommt vorbei und werft einen Blick in die wunderbare Welt der Wissenschaft, durch die Augen der besten Fotografen und Videografen! 📸 #ausstellung#wissenschaft#foto#bilder#natur#welt

Anlässlich des Welttages der Wissenschaft, der am 10. November gefeiert wird, wurde im Russischen Haus in Berlin eine neue Ausstellung „Mach dir ein Bild von Wissenschaft!“ eröffnet!😍 🖼️ In dieser Ausstellung werden die Aufnahmen ausgestellt, die die Schönheit und Geheimnisse der Welt um uns herum enthüllen: 🧑🏻‍🔬Wissenschaftler am Arbeiten; 🌍Einzigartige Momente aus der Natur; 🔬Atemberaubende Ausblicke, die mit Hilfe der mächtigsten Mikroskope und Teleskope aufgenommen wurden! Diese Bilder tragen dazu bei, die Wissenschaft zugänglicher zu machen, indem sie komplexe Studien in einer verständlichen Sprache der Fotografie und Videografie vermittelt.❤️ 🗓️ Die Ausstellung findet vom 11. November 2025 bis zum 31. Juli 2026 statt und befindet sich auf der 3. Etage des Hauses. 👀 Kommt vorbei und werft einen Blick in die wunderbare Welt der Wissenschaft durch die Augen der besten Fotografen und Videographen!📸 #ausstellung#wissenschaft#foto#bilder#natur#welt

Russisches Haus in Berlin

@rushaus · Post #2102 · 08.02.2026 г., 10:02

Auf Anordnung des Zaren Peter I wurde am 8. Februar 1724 in St. Petersburg die Akademie der Wissenschaften gegründet. Traditionell feiern russische Wissenschaftler an diesem Datum den Tag der russischen Wissenschaft.🧑🏻‍🔬 🧬 Auch heute setzen Wissenschaftler Russlands diese bedeutenden Traditionen fort: Sie entwickeln die vielversprechendsten Bereiche der Wissenschaft, arbeiten an modernsten Technologien und bilden die nächste Generation von Studenten aus. Wissenschaft ist jedoch nicht nur Forschung und Zahlen, sie ist auch Inspiration, Schönheit und Staunen. Genau das zeigt die Ausstellung im Russischen Haus in Berlin: Ausstellung „Mach dir ein Bild von Wissenschaft!“🖼️ In dieser Ausstellung werden Aufnahmen präsentiert, die die Schönheit und die Geheimnisse der Welt um uns herum enthüllen: 🧑🏻‍🔬Wissenschaftler bei der Arbeit; 🌍 einzigartige Momente aus der Natur; 🔬 atemberaubende Ansichten, aufgenommen mit Hilfe der leistungsstärksten Mikroskope und Teleskope! Diese Bilder tragen dazu bei, die Wissenschaftzugänglicher zu machen, indem sie komplexe Forschungsprozesse in der verständlichen Sprache der Fotografie und Videografie vermitteln.❤️ 🗓️ Die Ausstellung ist bis zum 31. Juli 2026 zu sehen und befindet sich auf der 3. Etage des Hauses. 👀 Kommt vorbei und werft einen Blick in die wunderbare Welt der Wissenschaft, durch die Augen der besten Fotografen und Videografen! 📸 #ausstellung#wissenschaft#foto#bilder#natur#welt

Russisches Haus in Berlin

@rushaus · Post #1994 · 10.11.2025 г., 08:50

Anlässlich des Welttages der Wissenschaft, der am 10. November gefeiert wird, wurde im Russischen Haus in Berlin eine neue Ausstellung „Mach dir ein Bild von Wissenschaft!“ eröffnet!😍 🖼️ In dieser Ausstellung werden die Aufnahmen ausgestellt, die die Schönheit und Geheimnisse der Welt um uns herum enthüllen: 🧑🏻‍🔬Wissenschaftler am Arbeiten; 🌍Einzigartige Momente aus der Natur; 🔬Atemberaubende Ausblicke, die mit Hilfe der mächtigsten Mikroskope und Teleskope aufgenommen wurden! Diese Bilder tragen dazu bei, die Wissenschaft zugänglicher zu machen, indem sie komplexe Studien in einer verständlichen Sprache der Fotografie und Videografie vermittelt.❤️ 🗓️ Die Ausstellung findet vom 11. November 2025 bis zum 31. Juli 2026 statt und befindet sich auf der 3. Etage des Hauses. 👀 Kommt vorbei und werft einen Blick in die wunderbare Welt der Wissenschaft durch die Augen der besten Fotografen und Videographen!📸 #ausstellung#wissenschaft#foto#bilder#natur#welt

Russisches Haus in Berlin

@rushaus · Post #1866 · 22.06.2025 г., 10:09

📆Heute vor 84 Jahren: Am 22. Juni 1941 überfällt Nazi-Deutschland die Sowjetunion. Hitler bricht den Nichtangriffspakt und entfesselt einen brutalen Vernichtungskrieg gegen Slawen und Juden. Sein Ziel: „Lebensraum im Osten“ im größten Land der Welt. 📺Die zweiteilige Doku „Hitlers Krieg im Osten“beleuchtet dieses düstere Kapitel der Geschichte. 🕰️ Sendetermine: Sonntag, 22. Juni 22:55 Uhr auf WELT 23:50 Uhr auf N24 Doku Montag, 23. Juni 03:40 Uhr auf WELT 04:40 Uhr auf N24 Doku 📢 Nicht verpassen! Geschichte verstehen heißt, aus ihr zu lernen. #Doku#ZweiterWeltkrieg#HitlersKrieg#22Juni1941#WELT#N24Doku