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

Резултати

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

Пребарај: #humanitariandisasters

当前筛选 #humanitariandisasters清除筛选

2023 格拉斯哥人權藝術節 開放及活動時間表出爐! 人權藝術節將於下週末發生,透過來自世界各地藝術作品,呈現香港人以及中國人民在政權迫害下掙扎求生的真實且壓抑的困境。感知 傷疤和所承受的痛苦,看見 種種侵犯人權和人道主義災難,讓參加者反思人權的寶貴。 日期:2023年11月24至26日(星期五至日) 地點:The Haberdashery ( 545 Sauchiehall St, GLASGOW G3 7PQ ) 展覽開放時間: 24 NOV : 13:30-16:00 25-26 NOV : 10:00-15:00 除了藝術作品展出,藝術節透過多元化表達,如 主題活動:真人圖書館、藝術家對談、資訊工作坊和講座,不論是蘇格蘭港人還是其他族群,能夠以不同形式代入、理解那些經歷酷刑和折磨的經歷,從生活角度認知中國威脅如何影響我們每一個人。 歡迎大家參加以下主題活動,由於場地空間有限,鼓勵大家提早報名: 真人圖書館:香港還柙者的心聲 25 NOV, 10am - 11am 詳情及報名:https://shorturl.at/lwS27 藝術家分享:「活摘思想」 25 NOV, 12nn - 1pm 詳情及報名:https://shorturl.at/eBGQR 網絡安全初階 講座 26 NOV, 12nn - 1pm 詳情及報名:https://shorturl.at/aoDOX 中國國情座談會 26 NOV, 1pm - 2pm 詳情及報名:https://shorturl.at/opH69 — 以下是協辦本次藝術節的背景和緣起: 2023年初盛傳特區港府將設立中港器官互通機制,又有親北京政客倡議「默認港人登記器官捐贈者制度」。港警同時又以《港區國安法》恫嚇阻止港人取消登記,配以一個無法查閱的香港器官捐贈登記名冊,更顯得其中的黑箱作業;香港人權狀況的日益嚴峻,亦側面提醒人們對北京政權所作的侵犯人權行為。 北京政權治下中國,器官販售猖獗。時有耳聞有來歷不明器官捐贈及活摘異見人士器官。早幾年前,日本、韓國、台灣等地新聞亦曾揭發中國販賣器官情況相當嚴重,更出現一條龍式器官非法販售及移植服務; 這些被販售的器官,很有可能來自法輪功練功者、維吾爾人、異見人士、「被失縱」大學生等被政權迫害的人士。 十一月下旬——世界人權日前夕,我們將透過來自世界各地藝術家的創作,呈現香港以致整個中國人民受壓迫的真像,和人民在陋規下掙扎求存的種種經歷。 是次人權藝術節期望透過藝術賦予人們另一個眼光去凝視傷痕、感知傷痛,從中國及香港種種人權問題、人道災難中,面對問題及反思人權的可貴。 我們是誰?誰是 The Hong Kong Scots? 自 2021 年以來,由於在香港區議會工作的民主派人士所面臨的風險,The Hong Kong Scots 的大多數成員和同事都以尋求庇護的身份在蘇格蘭定居和團聚;並初步組成於 2021 年 11 月,於 2022 年 4 月註冊為社區利益公司,是一群居住在蘇格蘭港人,旨在為香港僑民社群提供支援,讓他們在蘇格蘭有尊嚴地生活並更進一步推廣人權概念至港人僑民社群。 除了人權藝術節外,我們組織了各種各樣的活動,例如 為香港抗議者和天安門大屠殺而設的六月晚會、香港節日工作坊、香港人人權議題評論以及為香港人和尋求庇護港人提供融合支援。若想了解更多,請瀏覽我們 網頁: https://thehongkong.scot 附註:透過此募款活動籌集的任何額外資金將用於資助未來對蘇格蘭港人社區的支援。 捐款支持 https://www.gofundme.com/f/glasgow-human-rights-art-fest-on-peking-issues #畫廊#畫家剖白#中國因素#網絡安全#座談會#寫信師#異見人士#活摘器官#港區國安法#世界人權日#人權藝術節#人道災難#蘇格蘭香港人#文化交流 #Gallery#ArtistTalks#ChinaFactor#CyberSecurity#PanelDiscussion#LetterWriting#Dissidents#ForcedOrganHarvesting#NationalSecurityLaw#HumanRightsDay#HumanRightsArtFestival#HumanitarianDisasters#ScottishHongkongers#CulturalExchange