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

Резултати

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

Пребарај: #bnovisa

当前筛选 #bnovisa清除筛选
郭子健Daniel Kwok Tsz Kin

@tsingyidan · Post #1044 · 20.02.2024 г., 23:51

British Hongkongers are British! 一人£5,支持我哋三月到聯合國撐英屬港人真平權! 爭取真平權並不可恥。過去40年,我們香港人在歷史夾縫中感知傷痛。我們身為 英屬港人,作為英國在遠東最後一個領地的子民,應當感到無尚光榮,並繼續尋求我們和國家的共同利益。我們貢獻國家之餘,亦應該正視英國殖民歷史,爭取英屬港人國籍真平權,包括: 1)與英國海外領土公民身份看齊; 2) 在英出生BNO子女獲取英國發出的旅遊證件; 3)免除移民醫療附加費(IHS)及簽證申請費等; 4)可以使用eGate入境。 2024年3月,The Hong Kong Scots 為唯一在英港人團體到聯合國出席聽證,爭取 聯合國 人權委員會 為英屬港人(BDTC-HK)平權,與英國 海外屬土公民(現今英國 海外領土公民)在英國擁有同等公民權利。香港人想要在國際社會上有獨立聲音,要在大國之間的夾縫掙扎,就要靠自己。 我們沒有大金主,亦沒有英國政治組織支撐,需要全球港人一分一亳支持。請即捐款支持是次倡議之旅,捐款5GBP或以上,將贈送限量版「British Hongkongers are British」磁石貼,以答謝各位支持(磁石貼將於3月中陸續寄出)。 捐款連結 https://shorturl.at/bjE69 #BNO#BNOVisa#BNO簽證#通通不是平權#我要真平權#還英屬港人真國籍#敢言#實事求是

Hong Kong Democracy Movement

@hkdmovement · Post #7229 · 22.02.2024 г., 12:24

British Hongkongers are British! 一人£5,支持我哋三月到聯合國撐英屬港人真平權! 爭取真平權並不可恥。過去40年,我們香港人在歷史夾縫中感知傷痛。我們身為 #英屬港人,作為英國在遠東最後一個領地的子民,應當感到無尚光榮,並繼續尋求我們和國家的共同利益。我們貢獻國家之餘,亦應該正視英國殖民歷史,爭取英屬港人國籍真平權,包括: 1)與英國海外領土公民身份看齊; 2) 在英出生BNO子女獲取英國發出的旅遊證件; 3)免除移民醫療附加費(IHS)及簽證申請費等; 4)可以使用eGate入境。 2024年3月,The Hong Kong Scots 為唯一港人團體到聯合國出席聽證,爭取 #聯合國#人權委員會 為英屬港人(BDTC-HK)平權,與英國 #海外屬土公民(現今英國 #海外領土公民)在英國擁有同等公民權利。香港人想要在國際社會上有獨立聲音,要在大國之間的夾縫掙扎,就要靠自己。 我們沒有大金主,亦沒有英國政治組織支撐,需要全球港人一分一亳支持。請即捐款支持是次倡議之旅,捐款5GBP或以上,將贈送限量版「British Hongkongers are British」磁石貼,以答謝各位支持(磁石貼將於3月中陸續寄出)。 捐款連結 https://shorturl.at/bjE69 #BNO#BNOVisa#BNO簽證#通通不是平權#我要真平權#還英屬港人真國籍#敢言#實事求是

🇬🇧英軍要人!BNO如何參軍網上講座📣 How to join the UK Armed Forces with BNO visa seminar 嚟左英國,想為國家效力,身穿皇家軍服嘅機會唔再係夢想!但持 BNO visa 嘅香港人到底應該如何入伍呢?咁大家要聽吓說書人阿域佢參軍嘅經歷同埋軍中規矩,一齊為夢想奮鬥! 活動詳情 : 日期 : 21/1/2023 (星期六 / Saturday) 時間 : 13:00-14:00 內容 : - 英軍結構 (海陸空、全/兼職) - 軍中福利 - 入職要求 (國籍、年齡、居英年期、體能等) / - 熱門職位 (如:網絡工程師) - 問答環節 / Q&A session ⚠️報名連結將於 1月8日上午10 時正在港僑及 Britons in Hong Kong 的 Facebook,Instagram, Telegram 頻道同步公佈。 #英國港僑協會#移英港人#MissionPerm#移英港人家園計劃#移民英國#BNO#網上講座 #英軍#UKArmedForces#BNO參軍#香港人參軍#港人參軍#英國參軍#BNOvisa#入職#Career#RoyalNavy#BritishArmy#RoyalAirForce#Britonshk#Britonsinhongkong#BHK