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

Резултати

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

Пребарај: #ausummit2026

当前筛选 #ausummit2026清除筛选

ኢትዮጵያ እንግዶቿን በክብር እየሸኘች ነው **************** በ39ኛው የአፍሪካ ህብረት የመሪዎች ጉባኤና በ2ኛው የጣሊያን-አፍሪካ ስብሰባ ላይ የተሳተፉ መሪዎች በኢትዮጵያ የነበራቸውን ቆይታ በስኬት ማጠናቀቃቸውን ተከትሎ ወደ አገራቸው መመለስ ጀምረዋል። መሪዎቹ ከቦሌ ዓለም-አቀፍ አየር ማረፊያ ሲነሱም የክብር አሸኛኘት እየተደረገላቸው እንደሚገኝ የውጭ ጉዳይ ሚኒስቴር አስታውቋል። #EthiopianBroadcastingCorporation#ebcdotstream#Ethiopia#AUSummit2026

ለ39ኛው የአፍሪካ ሕብረት ጉባኤ ከእንግዶች አቀባበል ጋር በተያያዘ ዝግ የሚደረጉ መንገዶች ይፋ ሆኑ ******************** የጸጥታና ደህንነት የጋራ ግብረ ኃይል 39ኛውን የአፍሪካ ህብረት ጉባኤ አስመልክቶ አጠቃላይ የጸጥታ ዝግጅቱን አጠናቆ ወደ ስራ መግባቱ የሚታወቅ ሲሆን የተሽከርካሪ ፍሰቱን ለማሳለጥና ከእንግዶች አቀባበል ጋር በተያያዘ የትራፊክ መጨናነቅ እንዳይፈጠር ዝግ የሚደረጉ መንገዶችን የአዲስ አበባ ፖሊስ ጠቅላይ መምሪያ አስታውቋል። በዚህም ከቦሌ ዓለም አቀፍ አውሮፕላን ማረፊያ ወደ ብራስ እንዲሁም ከቦሌ መድኃኒያለም በአትላስ ወደ ቅዱስ ኡራኤል ቤተ ክርስቲያን የሚወስደው መንገድ በመሪዎቹ ጉባኤ ምክንያት ከዛሬ የካቲት 4 ቀን 2018 ዓ.ም ጀምሮ ሙሉ ለሙሉ ለተሽከርካሪዎች ዝግ የሚደረግ ይሆናል። በተጨማሪም በሌሎች እንግዶች በሚያርፉባቸው ዋና ዋና አደባባዮችና የአጀብ መስመሮች አሽከርካሪዎች ቅድሚያ በመስጠትና የትራፊክ ፖሊስ አባላትን ትዕዛዝ በማክበር የተለመደ ቀና ትብብራቸውን እንዲያደርጉ፤ በተጠቀሱት ቦታዎች ለረጅምም ሆነ ለአጭር ጊዜ ተሽከርካሪዎችን ማቆም የተከለከለ መሆኑንም የአዲስ አበባ ፖሊስ ጠቅላይ መምሪያ አስታውቋል፡፡ አጠራጣሪ ነገሮች ሲያጋጥሙም በነጻ የስልክ መስመሮች 990፣ 991፣ 987፣ 816 እንዲሁም በ011-1-26-43-59፣ 011-5-52-63-02/03፣ 011-5-52-40-77፣ 011-5-54-36-78 እና 011-5-54-36-81 እንዲሁም በእጅ ስልኮች የዜጎች ተሳትፎ መተግበሪያን (Citizen Engagement Application) EFPApp በመጠቀም ጥቆማ መስጠት እንደሚገባም ጥሪ ተላልፏል። #EthiopianBroadcastingCorporation#Ebcdotstream#Ethiopia#AUSummit2026

ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ከአዲሱ የአፍሪካ ኅብረት ሊቀመንበር ጋር ተወያዩ ******* አዲሱን የኅብረታችን ሊቀመንበር፤ የቡሩንዲ ፕሬዝዳንት ኢቫሪስቴ ንዳይሺሚዬን አግኝቼ በተረከቡት ኃላፊነት ደስታዬን ገልጬላቸዋለሁ ሲሉ ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ገለጹ። የአፍሪካውያን ጠንካራ ትብብር እና ቀጣናዊ ግንኙነቶችን ለማሳደግ በሚያስችሉ የተለያዩ ርዕሰ ጉዳዮች ዙሪያ ውይይት አድርገናል ብለዋል። #EBC#PMAbiy#Ethiopia#AUSummit2026

ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ከቦትስዋና ፕሬዝዳንት ዱማ ቦኮን ጋር ተወያዩ ****************** ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ከቦትስዋና ፕሬዝዳንት ዱማ ቦኮን ጋር በሁለትዮሽ እና ቀጣናዊ ጉዳዮች ላይ ተወያይተዋል፡፡ ጠቅላይ ሚኒስትሩ በማህበራዊ ትስስር ገጻቸው፤ የቦትስዋና ፕሬዝዳንት ዱማ ቦኮን አግኝቼ፤ በሁለትዮሽ እና ቀጣናዊ ጉዳዮች፣ ለተሻለ ኢኮኖሚያዊ ትብብር ያሉ እድሎች እና አፍሪካን ቀጣይ የሚመራ ትውልድን ማብቃት ላይ በጋራ በምንሰራበት አውድ ዙሪያ ውይይት አድርገናል ብለዋል። #EthiopianBroadcastingCorporation#Ebcdotstream#Ethiopia#PMAbiy#Diplomacy#AUSummit2026

ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ከሊቢያ ፕሬዝዳንታዊ ምክር ቤት ሊቀመንበር መሃመድ አልመንፊ ጋር ተወያዩ ***************** ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ከሊቢያ ፕሬዝዳንታዊ ምክር ቤት ሊቀመንበር መሃመድ አልመንፊ ጋር በቀጣናዊ ልማት እና የሁለትዮሽ ግንኙነት ላይ ውይይት ማድረጋቸውን በማህበራዊ ትስስር ገጻቸው አስታውቀዋል። #EthiopianBroadcastingCorporation#Ebcdotstream#Ethiopia#PMAbiy#Diplomacy#AUSummit2026

የተመድ ዋና ጸሀፊ አንቶኒዮ ጉቴሬዝ አዲስ አበባ ገቡ **************** የተባበሩት መንግስታት ድርጅት (ተመድ) ዋና ጸሀፊ አንቶኒዮ ጉቴሬዝ በ39ኛው የአፍሪካ ኅብረት የመሪዎች ጉባኤ ላይ ለመሳተፍ አዲስ አበባ ገብተዋል። ዋና ጸሀፊው ቦሌ ዓለም አቀፍ አውሮፕላን ማረፊያ ሲደርሱ የፕላንና ልማት ሚኒስተር ፍፁም አሰፋ (ዶ/ር) አቀባበል አድርገውላቸዋል። 39ኛው የኅብረቱ የመሪዎች ጉባዔ "ዘላቂ የውሃ አቅርቦትና ደህንነቱ የተጠበቀ የንጽህና አጠባበቅ ስርዓቶችን ማረጋገጥ፥ ለአጀንዳ 2063 ግቦች ስኬታማነት” በሚል መሪ ሀሳብ በመጪው ቅዳሜ እና እሁድ ይካሄዳል። በጉባኤው የሚሳተፉ መሪዎችም ወደ አፍሪካ መዲና አዲስ አበባ በመግባት ላይ ናቸው። በሞላ አለማየሁ #EthiopianBroadcastingCorporation#Ethiopia#UNSG#AntónioGuterres#AUSummit2026

ከጉባኤ አዳራሾች ባሻገር የሚተርክ አዲስ ገጽታ እና የኢትዮጵያ ዓለም አቀፋዊ ዝግጁነት ******************* ኢትዮጵያ 39ኛውን የአፍሪካ ኅብረት የመሪዎች ጉባኤ እና 2ኛውን የጣሊያን-አፍሪካ ስብሰባ ለመካፈል ወደ አዲስ አበባ የሚመጡ ከፍተኛ ልዑካንን ለመቀበል ከመቼውም ጊዜ በላይ ስንዱ መሆኗን ጠቅላይ ሚኒስትር ዐቢይ አሕመድ (ዶ/ር) ገለጹ። መዲናዋ በከፍተኛ ጥራትና በዘመናዊ መልክ የተገነቡ ዓለም አቀፍ የስብሰባ አዳራሾችን እንዲሁም ደረጃቸውን የጠበቁ ምቹ የቱሪዝም መዳረሻዎችን በማሟላት እንግዶቿን ለመቀበል በላቀ ደረጃ መዘጋጀቷን ጠቅላይ ሚኒስትሩ አረጋግጠዋል። ይህ አዲሱና ማራኪው የከተማዋ ገጽታ የእንግዶችን ቆይታ ልዩና የማይረሳ እንደሚያደርገው የገለጹት ጠቅላይ ሚኒስትሩ፤ ተሳታፊዎች ከጉባኤው መድረኮች ባሻገር በአፍሪካውያን ጥረት እያደገ የመጣውን አዲሱን የቱሪዝም ዘርፍ እንዲመለከቱና ቆይታቸውን እንዲያራዝሙ ጥሪያቸውን አስተላልፈዋል። ይህ ዝግጁነት ኢትዮጵያ ለዲፕሎማሲያዊ ሁነቶች ያላትን ምቹነት የሚያሳይ ብቻ ሳይሆን፣ አህጉራዊ ትብብርንና የቱሪዝም ኢንዱስትሪውን ለማሳደግ ያላትን ቁርጠኝነት ዳግም ያረጋገጠ መሆኑ ተመላክቷል። #Ethiopia#PMAbiyAhmed#AfricanUnion#AUSummit2026#ItalyAfricaSummit#TourismEthiopia#EthiopianBroadcastingCorporation