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

Резултати

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

Пребарај: #spain

当前筛选 #spain清除筛选
International Geographic

@internationalgeographic · Post #5519 · 21.03.2025 г., 04:50

Seville, #Spain Metropol Parasol (the Metropol umbrella, Spanish The Metropol Parasol, also known as the Mushrooms of Seville, is a concrete and wooden structure located in the Plaza de la Encarnacion. Plaza de la Encarnación) in the old quarter of Seville. The building was designed by German architect Jürgen Mayer, and construction was completed in April 2011. The 28-meter-high facility covers an area of 150 by 75 meters and claims to be the largest wooden structure in the world.

Hashtags

International Geographic

@internationalgeographic · Post #5459 · 28.02.2025 г., 00:07

Fuerteventure, #Spain🇪🇸 This wonderful natural pool is located on the island of Fuerteventure. 🏝 Interestingly, Fuertever is considered one of the oldest islands of Spain, formed thanks to the eruption of the volcano more than 20 million years ago. This fact confirms the unusual form of the island and the complete absence of snakes and insects dangerous for humans. Also, the pluses of this place should include an almost complete absence of rains and a soft climate.

Hashtags

POPULAR FRONT

@popularxfront · Post #4449 · 11.01.2026 г., 16:56

🇪🇸#Spain / Catalonia: There were intense clashes yesterday in Sentmenat (Barcelona) between anti-fascist protesters and riot police. Groups of demonstrators took to the streets to oppose the opening of a new delegation and headquarters by the neo-Nazi group Núcleo Nacional. Hundreds of anti-fascist activists gathered near the industrial area where the far-right group was holding an event, leading to police charges as officers attempted to prevent protesters from reaching the venue. (📹 via @rebonico on X)

Hashtags

POPULAR FRONT

@popularxfront · Post #4037 · 02.12.2025 г., 10:44

🇪🇸#Spain: Europol and the Spanish National Police have uncovered a far-right accelerationist cell linked to The Base. Three suspects were arrested during coordinated raids in Madrid, Valencia and Castellón, with officers seizing firearms, ammunition, knives, tactical gear, and accelerationist/neo-Nazi propaganda. According to investigators, the cell was "highly radicalised" and it had conducted paramilitary style training, while being allegedly in contact with The Base's founder, Rinaldo Nazzaro. Only a month ago, The Base issued messages on its Telegram channels urging the consolidation of its dispersed international cells. (via The Guardian)

Hashtags

Voyage.Travel.Tourism

@VOYAGE · Post #1414 · 08.05.2025 г., 12:14

🌍Alhambra in Spain✨ 📏 📏 📏 📏 📏 📏 📏 📏 ⭐ Alhambra, a stunning fortress-palace in Granada, is one of Spain’s most iconic landmarks, showcasing beautiful Islamic architecture. 📏 📏 📏 📏 📏 📏 📏 📏 #Spain🇪🇸@voyage

Hashtags

Voyage.Travel.Tourism

@VOYAGE · Post #1211 · 27.12.2024 г., 13:14

😍When talking about Barcelona, one immediately thinks of the Sagrada Familia. 📏 📏 📏 📏 📏 📏 📏 📏 After 137 years, this landmark has become one of the most visited not only in Catalonia but in all of Europe. 🌟 📏 📏 📏 📏 📏 📏 📏 📏 #Spain🇪🇸 @voyage

Hashtags

Voyage.Travel.Tourism

@VOYAGE · Post #1209 · 25.12.2024 г., 13:14

🗺Spain 🇪🇸 📏 📏 📏 📏 📏 📏 📏 📏 Mount Tibidabo — the highest point in the Spanish city of Barcelona, part of the Collserola range. 📏 📏 📏 📏 📏 📏 📏 📏 🌟From this hill, you get a stunning panorama of the Catalonian capital, enjoyed by both tourists and locals. Though relatively low at just over 500 meters above sea level, both the mountain and its summit attractions are visible from anywhere in the city. 📏 📏 📏 📏 📏 📏 📏 📏 #Spain @voyage

Hashtags

Voyage.Travel.Tourism

@VOYAGE · Post #1194 · 13.12.2024 г., 13:14

November in Barcelona is pure magic ✨ 📏 📏 📏 📏 📏 📏 📏 📏 💚This area between Urquinaona Square and Paseo de San Juan Avenue is a treasure trove of architectural masterpieces! Every building here is a work of art, rich in history and unique charm. 📏 📏 📏 📏 📏 📏 📏 📏 💚Imagine walking down a narrow street, the autumn leaves rustling underfoot, with majestic buildings towering around you, adorned with elegant balconies and carved doors. Time seems to slow down, and you’re immersed in the atmosphere of old Barcelona. 📏 📏 📏 📏 📏 📏 📏 📏 #Spain🇪🇸 @voyage

Hashtags

Voyage.Travel.Tourism

@VOYAGE · Post #1025 · 14.07.2024 г., 12:14

Spain 🇪🇸 Mount Tibidabo — the highest point in the Spanish city of Barcelona, part of the Collserola range. From this hill, you get a stunning panorama of the Catalonian capital, enjoyed by both tourists and locals. Though relatively low at just over 500 meters above sea level, both the mountain and its summit attractions are visible from anywhere in the city. #Spain @voyage

Hashtags

123•••78
ПретходнаСтраница 1 од 8Следна