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 слични објави

Пребарај: #sekaiproject

当前筛选 #sekaiproject清除筛选
Galgame分享频道

@xiaomenggalgame · Post #177 · 17.12.2025 г., 00:02

水仙十周年选集 ▎介绍 "生命就像一个候诊室,只是人们离开的顺序并不按照他们进入的顺序。" 那么,当离开的时候到来时,会去往何处?你能在最后微笑吗? 《Narcissu》是一个发人深省的视觉小说系列,讲述了关于绝症、生存、死亡,以及离开者与留下者之间关系的故事。这个故事中没有奇迹,没有英雄,也没有反派。只有生命,以及角色们在一个冷漠、无情、永远公平的现实中面对死亡的自己的方式。 这个系列因其感人的故事和高质量的制作而受到粉丝的赞誉,原作已被下载超过一百万次,并衍生出漫画和轻小说,还被翻译成多种语言在全球发行。这个选集终于将那些从未在日本以外发行的游戏带到了世界各地的热情粉丝面前,同时更新了艺术作品、配音,并增加了一个专为这个选集编写的全新章节:"Sumire"(菫)。 这个选集在突破新领域方面更进一步,它在已经俘获了数千名《Narcissu》粉丝心灵的音乐基础上,又增加了两位电子游戏界的传奇人物:《Turrican》系列的Chris Huelsbeck和《圣剑传说》系列的菊田裕樹。 ▎获取 PC仓库 ▎标签 系统:#PC 类型:#galgame#SWF#汉化 系列:#水仙 出版:#SekaiProject

Galgame分享频道

@xiaomenggalgame · Post #175 · 16.12.2025 г., 00:05

水仙0 ▎介绍 "生活就像候诊室,只不过人们离开的顺序并非先来后到。" 1970年代的日本。在国家首批临终关怀院建立之前。 一个男孩在帮助家族经营的养老院中长大。 他经常逃学回家帮忙,因此留级了一年。 某天,他遇见同样留级的女孩,两人成为朋友。 这是关于两个孩子成长的故事。 关于离去者与被留下者之间的那堵墙。 关于第七层临终关怀院的起源。 最终,也是关于"那些规则"的由来。 ▎获取 PC仓库 ▎标签 系统:#PC 类型:#galgame#SWF#汉化 系列:#水仙 出版:#SekaiProject

Galgame分享频道

@xiaomenggalgame · Post #174 · 15.12.2025 г., 00:04

水仙 姬子终章 ▎介绍 在与皋月最后的驱车之旅后, 姬子再次回到了7楼。 姬子心中只有一个遗憾。——她的挚友由香。 只有姬子知道由香那怯懦靠不住的性格。 剩下的时间不多了。她的生命仅剩一个月。 在这段时间里,姬子想为她的"挚友"做些什么... ▎获取 PC仓库 ▎标签 系统:#PC 类型:#galgame#SWF#汉化 系列:#水仙 出版:#SekaiProject

Galgame分享频道

@xiaomenggalgame · Post #172 · 14.12.2025 г., 00:02

水仙 -Sumire- ▎介绍 『水仙』的新系列『水仙 紫罗兰』以DVD形式登场了♪ 紫罗兰已经持续了10年的闭门不出生活,某天突然被告知要前往7楼。在那里,她遇到了明里,并决定将她作为自己活过的见证人……? 请欣赏与美丽插画一同展开的极致故事,直到最后☆ ▎获取 PC仓库 ▎标签 系统:#PC 类型:#galgame#SWF#汉化 系列:#水仙 出版:#SekaiProject

Galgame分享频道

@xiaomenggalgame · Post #169 · 12.12.2025 г., 22:48

水仙2 ▎介绍 2代的故事发生在1代剧情的7年之前,主角濑津美当时有15岁,与前作相同的是,本作依然延续了写实的制作风格,催人泪下的剧情,悲情的音乐,是Narcissu系列最为成功的看点。 游戏的情节围绕着姫子和濑津美,围绕着让人失去生存希望的7楼展开,讲述着一个注定着悲伤的故事。 濑津美由于初中起身体就不好,频繁的休学与住院渐渐让她远离了那些曾经非常亲密的朋友与亲人。 毫不客气的吃姫子的慰问品随后还毒舌相对,但实际上对姫子给予着自己最大的关怀,十分珍惜着这位好朋友。 姫子的妹妹千寻只要大学一下课就会赶到姐姐的病床边照顾着姐姐。 没有姫子的毒舌属性,却要多一份稳重,同优花一样将悲伤藏在了心底,总是摆出笑脸探望姐姐。 尽可的去满足姐姐的愿望,对姫子百依百顺。 姫子虽然平日生活随便,教堂的礼拜随意旷掉,不记地图随意开车乱走。给妹妹和周围的人添了不少麻烦。 但心里却对自己周围的人非常的珍惜与爱护,不忍心让别人为自己而伤心。 故事中还有一条重要的线索是姬子,这个自谑“伪天主教徒”的过去——曾经的一位在自己现在所处的医院当陪护的“天主教徒”,在那时姬子遇到了一位身患绝症,但由于说不清的原因而遭遗弃的儿童,从而深深地影响了她今后的人生。 这一段姬子的回忆可以说是后文——现在的和濑律美故事的重要解释、铺垫,隐含了Narcissu Side 2nd的主旨,按文中的说法姬子把濑律美与过去的那位孩子“替代”了。 带着白色手环的姫子对同为病人、带着蓝色手环的濑津美却是另一种感情。濑津美性格孤僻,姫子主动招呼她关心她,把濑津美当作自己的妹妹一般。 前作中濑津美熟记地图、熟悉车辆的原因在此作中也会得到揭示。 ▎获取 PC仓库 ▎标签 系统:#PC 类型:#galgame#SWF#汉化 系列:#水仙 出版:#SekaiProject

Galgame分享频道

@xiaomenggalgame · Post #166 · 12.12.2025 г., 00:01

水仙3 ▎介绍 描述刚进入安宁病所(hospice)的主人公,及从前就常进出安宁病所、渐渐与任何事都漠不关心的女主角“濑津美”,两个在医院过着平凡日子,等待死亡的男女,渐渐发展下去的故事。 而SIDE 2nd的故事背景则在narcissu的6年前,描写女主角“濑津美”和她身边的人们的过去的另一个故事。 全故事以片岡とも剧本的一贯趋于平淡风格,排除所有华丽描写、剧情逆转等故事常用要素,只是描写围绕主要角色们平凡的日常生活点滴。 在这个电子小说发布的一年前,他参与过的商业作品弹珠汽水的附加模式之一,Staff Room中片冈写的一个小故事“中学时代的事(中坊の日のこと)”,当中提到两个男生和一个长期患病的少女“S美”的故事。而这个故事中“S美”被猜测为本作同是长期患病女主角“セツミ”,刚好罗马拼音“Setsumi”是S开始,日文汉字写法“濑津美”是“美”结束。因此亦被猜测为此作的最初蓝本。 片岡とも很少提及关于剧本内容的创作动机。无论在游戏的制作后感,还是在个人网页 [2] 上,都只是说不为什么,只是因为想写。因此剧本要表现的意思,读者均有其不同的揣测,而作者在SIDE 2nd中亦说“这些意见都应该是正确的”,他本人并不对剧本的意思另外加以解释。 在SIDE 2nd发表后,电子小说中完成两个故事之后出现的后记中,表达了这个故事的主题。而片岡とも在一则关于narcissu中的访问中,亦表示“可能只是为尾声的数行字而写SIDE 2nd的”。 ▎获取 PC仓库 ▎标签 系统:#PC 类型:#galgame#SWF#汉化 系列:#水仙 出版:#SekaiProject