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

Резултати

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

Пребарај: #hdp

当前筛选 #hdp清除筛选
WAR AND EPILEPSY

@qashqul · Post #1774 · 21.08.2020 г., 14:12

Пару слов про оппортунизм... Современное курдское народно-освободительное движение всерьез страдает не только по причине угнетательской политики нынешнего руководства Турецкой Республики, которая носит абсолютно фашистский характер, но и по причине того, что множество курдских политических сил занимает явно оппортунистическую соглашательскую позицию, призывая народ и его активную авангардную часть к уважению парламентских форм политической борьбы и диалогу с властями. Нет нужны приводить примеры «демократизма» турецких властей. А список их преступлений против курдского народа весьма внушителен. Но если против этой политики авангард курдского революционного движения ведёт упорную борьбу, то что делать с жалкими политиканами, которые призывают нас сложить руки и следовать принципам парламентаризма... и ради кого? - в угоду националистам, помешавшимся на религиозных лозунгах, руководимых ложным историзмом. Пускай их рассудит народ и естественный ход истории. А, тем временем, заметим, что в курдское общественно-политическое движение Турции вносится целенаправленный раскол. Из новоявленных «прокурдских» партий, приступивших к критике Демократической партии народов (#HDP), в право-оппортунистических действиях замечена Партия демократических регионов (Demokratik Bölgeler Partisi - DBP). Сейчас купленные DBP блогеры развернули кампанию критики против #HDP. Да к #HDP тоже можно предъявить много претензий, но если посмотреть, к кому турецкий правящий режим проявляет наибольшую агрессивность, то станет очевидно, что это именно #HDP. По крайней мере #HDP остается верной делу курдской демократии, верной принципам лидера Апо. Множество достойных людей, стоявших под флагами этой партии, были репрессированы Эродаганом. Так что хочется пожелать курдскому народу быть осмотрительным, когда разного рода провокаторы из новоявленных политиканов высказывают смелые оценки тем, до кого им самим очень далеко... ᅠ

Hashtags

Libertà è ragione

@libertaeragione · Post #3683 · 05.01.2023 г., 14:52

#Turchia La corte costituzionale turca ha deciso di congelare temporaneamente i conti bancari del #HDP|S&D, partito filo-curdo, con l'accusa di aver utilizzato in modo improprio le sovvenzioni del tesoro per finanziare attività terroristiche. @OsservatorioEsteri

Hashtags

Turchia e dintorni

@notizieturchia · Post #3061 · 03.03.2025 г., 13:44

#Turchia: messaggio da #SelahattinDemirtas, l'ex co-presidente dell'#HDP in merito al nuovo percorso di dialogo tra il #PKK e lo Stato: "Si tratta di un'intenzione che vuole finire la guerra ovviamente con l'adeguata base giuridica e politica. Non voglio che muoiano altre persone. Farò tutto il necessario per la pace".

Turchia e dintorni

@notizieturchia · Post #3626 · 03.11.2025 г., 11:59

#Turchia: #HudaKaya, l'ex deputata del partito d'opposizione, #HDP, oggi entra in carcere per scontare 1,5 anno di pena perché era stato trovato un cellulare nella sua borsa nel 2022 quando aveva visitato suo figlio detenuto nel carcere di #Çanakkale https://www.youtube.com/watch?v=mc5Tx6miMyQ

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37627 · 26.04.2022 г., 13:35

#Sondaggi#Turchia Sondaggio di ASAL: #AKP|Destra: 36% (+1,5) #CHP|S&D: 25% (-1) #İYİ|Centro-destra: 12% #HDP|S&D: 10,5% (+0,5) #MHP|Estrema destra: 9% #DEVA|Centro: 2% #YRP|Estrema destra islamica: 1% #SP|Estrema destra islamica: 1% #GP|Centro-destra: 1% Data rilevazione: 8-10 aprile +/-: 15-18 marzo Intervistati: 2100 @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39591 · 17.05.2022 г., 14:04

#Sondaggi#Turchia Sondaggio di AKAM: #CHP|S&D: 30,5% (-1) #AKP|Destra: 29,5% (-1,5) #İYİ|Centro-destra: 13% #HDP|S&D: 10% #MHP|Estrema destra: 6% #DEVA|Centro: 5% (+1) #ZAFER|Destra kemalista: 2% (+1) #GP|Centro-destra: 2% (+1) #SP|Estrema destra islamica: 1% Data rilevazione: 27 aprile-3 maggio +/-: 24-29 marzo Intervistati: 2460 @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39874 · 06.06.2022 г., 20:50

#Sondaggi#Turchia Sondaggio di AKAM: #CHP|S&D: 31% (+0,5) #AKP|Destra: 29,5% #İYİ|Centro-destra: 13% #HDP|S&D: 9% (-1) #MHP|Estrema destra: 5% (-1) #DEVA|Centro: 5% #GP|Centro-destra: 2% #ZAFER|Destra kemalista: 2% #SP|Estrema destra islamica: 1% #YRP|Estrema destra islamica: 1% (+1) Data rilevazione: 26 maggio-1° giugno +/-: 27 aprile-3 maggio Intervistati: 1500 @UltimoraPolitics

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #39180 · 10.05.2022 г., 16:12

#Sondaggi#Turchia Sondaggio di İEA: #AKP|Destra: 32% #CHP|S&D: 26% #İYİ|Centro-destra: 17% (+2) #HDP|S&D: 12% #MHP|Estrema destra: 7% (-1) #DEVA|Centro: 2% (-1) #SP|Estrema destra islamica: 1% (;1) #YRP|Estrema destra islamica: 1% #GP|Centro-destra: 0,5% (-0,5) #ZAFER|Destra kemalista: 0,5% (+0,5) Data rilevazione: 4-7 aprile +/-: marzo Intervistati: 1500 @UltimoraPolitics

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #38418 · 05.05.2022 г., 15:30

#Sondaggi#Turchia Sondaggio di MetroPOLL: #AKP|Destra: 32% (-2) #CHP|S&D: 22% (-2) #İYİ|Centro-destra: 19% (+3) #HDP|S&D: 12% (-1) #MHP|Estrema destra: 7% (+2) #DEVA|Centro: 2% #SP|Estrema destra islamica: 1% #YRP|Estrema destra islamica: 1% #GP|Centro-destra: 1% #ZAFER|Destra kemalista: 1% (+1) Data rilevazione: 14-20 aprile +/-: marzo Intervistati: 2164 @UltimoraPolitics

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #39292 · 12.05.2022 г., 12:15

#Sondaggi#Turchia Sondaggio di Artıbir: #AKP|Destra: 30% #CHP|S&D: 27% #İYİ|Centro-destra: 14% #HDP|S&D: 13% #MHP|Estrema destra: 6% (-1) #DEVA|Centro: 5% (+1) #GP|Centro-destra: 2% #SP|Estrema destra islamica: 2% #YRP|Estrema destra islamica: 1% (+1) #MP|Centro-sinistra kemalista: 0,4% #ZAFER|Destra kemalista: 0,3% Data rilevazione: 21-30 aprile +/-: 20-28 marzo Intervistati: 1500 @UltimoraPolitics

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