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

Резултати

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

Пребарај: #elections2024

当前筛选 #elections2024清除筛选
Venezuelanalysis

@venanalysis · Post #1745 · 15.09.2024 г., 23:07

The Venezuelanalysis podcast returns! After a short hiatus, we're back with a new format! VA staff is set to feature more prominently and we'll publish on video as well. In this episode, host José Luis Granados Ceja and editor Ricardo Vaz break down the electoral aftermath in Venezuela. Follow this link for early access: https://www.patreon.com/posts/112126008 #Venezuela#Podcast#Elections2024

Venezuelanalysis

@venanalysis · Post #1627 · 01.07.2024 г., 15:45

Venezuelanalysis columnist Clodovaldo Hernández offers a deep dive into the complexities and uncertainties surrounding Venezuela's July 28 presidential elections. He tackles Maduro's prospects and challenges, as well as those of the US-backed opposition. Read the column: https://venezuelanalysis.com/analysis/july-28-an-equation-with-multiple-unknowns/ #Venezuela#Elections2024#Democracy

Venezuelanalysis

@venanalysis · Post #1720 · 15.08.2024 г., 23:39

The four-person UN panel said that the lack of detailed results had a “negative impact on confidence in the [electoral] outcome” announced by the CNE. The electoral body accused the UN team of violating its agreement and carrying forward a "political agenda." Read the report: https://venezuelanalysis.com/news/venezuela-electoral-authorities-reject-un-experts-report-for-political-agenda/ #Venezuela#Elections2024#UnitedNations

Venezuelanalysis

@venanalysis · Post #1703 · 31.07.2024 г., 03:18

The Venezuelanalysis team held a livestream on Tuesday evening to provide an on-the-ground update of the situation in Venezuela following Sunday's elections. Watch the video: https://venezuelanalysis.com/video/venezuelas-post-election-scene-on-the-ground-reports/ #Venezuela#Chavismo#Elections2024

Venezuelanalysis

@venanalysis · Post #1710 · 06.08.2024 г., 03:38

Chavista analyst and activist Luigino Bracci talked to computing expert Victor Theoktisto to address open questions surrounding the July 28 elections. “The opposition must challenge the results before the TSJ, not in public opinion or international media,” stated the professor. Read the article: https://venezuelanalysis.com/analysis/cybersecurity-expert-on-fraud-claims-and-voting-safeguards-in-venezuelas-presidential-election/ #Venezuela#Elections2024#cybersecurity

Venezuelanalysis

@venanalysis · Post #1709 · 04.08.2024 г., 23:46

Venezuelan President Nicolás Maduro said authorities had neutralized a “fascist outbreak” following last Sunday's elections. Check out a gallery of yesterday's rallies: https://venezuelanalysis.com/images/venezuela-government-opposition-supporters-take-to-the-streets-in-post-electoral-scene/ #Venezuela#Elections2024#Demonstration

Venezuelanalysis

@venanalysis · Post #1707 · 03.08.2024 г., 13:35

Chavismo and the US-backed opposition are mobilizing this Saturday after updated electoral results continue favoring President Maduro. Meanwhile, the Venezuelan Supreme Court demanded that candidates and the electoral body submit evidence in order to review the vote results. Read the full story: https://venezuelanalysis.com/news/venezuela-cne-ratifies-maduro-victory-supreme-court-demands-voting-records-and-hacking-evidence/ #Venezuela#SupremeCourt#Elections2024

Venezuelanalysis

@venanalysis · Post #1633 · 06.07.2024 г., 18:37

Incumbent Nicolás Maduro and opposition challenger Edmundo González saw supporters come out en masse in Caracas as the campaign officially began ahead of the July 28 presidential vote. There are 10 candidates running. Both Maduro and González have expressed confidence in victory. Report + photos: https://venezuelanalysis.com/images/venezuela-presidential-campaign-kicks-off-with-massive-rallies/ #Venezuela#Elections2024#CampaignTrail

EmbajadaRusaVen

@embajadarusaven · Post #1452 · 15.03.2024 г., 16:24

⚡️Arrancan las #elecciones presidenciales en #Rusia Por primera vez se celebran durante tres días de acuerdo con las peticiones de los ciudadanos, según informó anteriormente Ella Pamfilova, presidenta de la Comisión Electoral Central (CEC). En las actuales elecciones presidenciales se utilizará activamente el voto electrónico a distancia: según la CEC, unos 5 millones de ciudadanos rusos van a votar por Internet, por lo que se ha prestado especial atención a la ciberseguridad. ✔️ Por primera vez, los residentes de nuevas regiones del país votarán en las elecciones presidenciales. ⚡️Las primeras estadísticas estarán disponibles a partir del 17 de marzo. #Elections2024#VoteForRussia

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