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

Резултати

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

Пребарај: #little

当前筛选 #little清除筛选
Journey to Fluency

@fluencyinenglish · Post #7453 · 18.12.2019 г., 05:06

#few #a_few #little #a_little @fluencyinenglish @ieltsstrategies ❇️Little, a little, few, a few @fluencyinenglish @ieltsstrategies (A) little and (a) few are quantifiers meaning ‘some’. Little and few have negative meanings. We use them to mean ‘not as much as may be expected or wished for’. ✅Compare All she wanted was a few moments on her own. some, a small number She had few moments on her own. not many/almost none She saves a little money every month. some, a small amount They had little money to spend. not much/almost nothing A: Have you got any money? B: Yes, a little. some, a small amount A: Have you got any money? B: No, very little. not much/almost nothing @fluencyinenglish @ieltsstrategies A little, a few with a noun ❇️We use a little with singular uncountable nouns. We use a few with plural countable nouns: Mary said nothing, but she drank some tea and ate a little bread. We stayed a few days in Florence and visited the museums. @fluencyinenglish @ieltsstrategies Little, few with a noun ❇️We use little with uncountable nouns. We use few with plural countable nouns. They are used in formal contexts: I’m not very happy about it but I suppose I have little choice. Few cities anywhere in Europe can match the cultural richness of Berlin. [talking about a period of history] At that time few people travelled who didn’t have to. @fluencyinenglish @ieltsstrategies (A) little, (a) few without a noun ❇️We can use (a) little and (a) few as pronouns. We can use them to substitute for a noun when it is obvious from the context: After that, she began to tell them a little about her life in Scotland, particularly her life with the Rosenblooms. Don’t take all the strawberries. Just have a few. (Just have a few strawberries.) @fluencyinenglish @ieltsstrategies ❇️Little and few are not very common without a noun. We use them in formal contexts: Little is known about his upbringing and education. Few would be in favour of police officers carrying weapons. @fluencyinenglish @ieltsstrategies

VIP_影视分享

@WangZhuanZhan · Post #34500 · 28.10.2024 г., 07:30

Y-y杨y过g与y小x龙l女n- 杨过与小龙女 楊過與小龍女 (1983) 直达链接:https://pan.quark.cn/s/936f5b69fe88 #杨过与小龙女 #楊過與小龍女 #神雕侠侣之杨过与小龙女 #Little Dragon Maiden 链接:https://link3.cc/sf_com #电影#爱情#内地#80年代

小喵的ACG黄油 (重开版)

@xiaomiaogame · Post #3356 · 11.03.2026 г., 10:57

Little Witch Inuko 见习魔女犬子酱 いぬこちゃんは見習い魔女 v2.04 官方中文步兵版 游戏简介: 在绝望的深渊中,苍之魔术师艾欧斯遇见了一只拥有惊人魔法天赋的犬丸。 他收它为徒,赐名「犬子」,决心培养她成为自己的继承人。 多年过去,犬子这位从犬丸化身为人类的少女,如今已是前途无量的见习魔法师……但现在,她遇到大麻烦了! 她最爱的师父竟逼她接受魔法协会设下的严酷试炼,考核她是否有资格成为正式魔女! 更可怕的是,如果失败,师父就要断绝师徒关系! 为了继续待在艾欧斯身边,更为了让他正眼看待自己、接受她的心意,犬子下定决心挑战试炼! 究竟,师父为何如此坚持要她参加考验?遗迹之中又藏着怎样的秘密? 她是否能通过试炼,征服神秘的地下遗迹,成为真正的魔女? 一切谜题,等你与犬子一同揭晓! 评分 作者 #ふらむそふと #PC#RPG#步兵#逆推#官中 #Little Witch Inuko #见习魔女犬子酱#いぬこちゃんは見習い魔女 入正地址 下载地址