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

Резултати

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

Пребарај: #jfitness

当前筛选 #jfitness清除筛选
ppteng bio日常

@pptdaily · Post #224 · 15.05.2025 г., 14:09

#Jfitness#Murmuration#PKM 【接上】走路其实一样可以去练,只不过走路和慢跑的感觉比较轻而已,达不到100%送髋。 这种东西先感觉骨盆再转就可以了。 所以自己对去感受 走路/跑步 时,骨盆旋转带动大腿,自然落地(走路)和蹬地(跑步)就可以了,你的髋就在转了。 如果是大腿带动小腿,是迈的感觉那就是不对的。要改善这一点自己一定要有强意识,重点盯着就可以。 走路来说,不挺胸撅屁股,骨盆不正,是没法感觉到【髋】的运动方式的。 当然根据图34来看,很多脚型和足弓(内外八)有问题,其实就是【髋】有问题,髋带大腿,大腿带小腿,小腿带足部,都是久而久之造成的问题。 尤其女性同志内扣(内八)非常严重,通过在走路过程中感觉送髋,增强有腿小腿的力量,是会有很大的改善的。 如图3 ,足外翻(外八字) 表现:站立时足跟向外倾斜,足弓塌陷,呈“八字脚” 。 危害:易引发X型腿、膝痛,长期可能导致扁平足。 如图4,足内翻(内八字) 表现:行走时脚尖向内,严重双膝相碰,女性常见。 分型:髋关节内旋型(常见)、胫骨内旋型、足内收型 两者严重的均需要【稳定支撑】的鞋子,普通鞋子需要更换对应脚型的定制支撑鞋垫。如果还【后脚跟】落地,或者鞋底不同位置磨损更大,说明很大问题了。 也不是每个跑者都会重视自己脚型,选错鞋的,马路上,比赛里,太多了太多了。 如何判断?也很简单,那就是【观察法】 1. 足印测试:光脚踩湿纸巾后踏在纸上,观察足弓印记(足外翻呈全脚掌印) 2. 鞋底磨损:足外翻-鞋底内侧磨损严重;内八字-鞋底外侧偏斜磨损 大概率(80%)判定就是这样,但是看鞋底磨损,看不出来【足弓塌陷】的问题,只能大概率判定【脚型】问题。脚型配上不同的足弓塌陷就是不同的分型。 所以鞋底不是评判的唯一标准,就是个八九不离十的大概。 大概率判定后就要找机构或者医院去核实。确诊后,如果需要定制鞋垫,“基本算”需要的要求:足外翻合并扁平足(Cobb角>15°),内八字伴随髋/胫骨明显旋转异常。 【定制鞋垫】的主要作用是【定制足弓高度】这个是最主要的,辅助你支撑的,让你的脚不会歪。 有些同志有小孩子的,8岁前基本可自动修复生理内外八。但8岁后,你们家长自己不明白,不较真,孩子改不过来的。最好是去医院确诊再说。 机构,一定要去运动损伤或康复的专业机构。他们也会通过“望闻问切”和专业机器来判定你的问题,更重要的是会传授你修复的一些动作,这些动作是适合你自己的问题的。这个很关键,典型的花小钱办大事。 基本就这样。

ppteng bio日常

@pptdaily · Post #220 · 15.05.2025 г., 14:09

#Jfitness#Murmuration#PKM 补充今早聊的过的跑步过程中的【送髋】(图12)问题及深入点的【脚型】(图34)问题。 如图1 【送髋】主要过程是由 腰椎 -> 骨盆 -> 髋关节 带动而来的。 “送髋”的本质就是骨盆适度回旋运动所带来的抬腿幅度的加大,抬腿幅度明显是“送髋”的外在表现,但“送髋”绝不等于只是抬大腿。如果只是抬大腿而没有骨盆的回旋运动,那么就不是“送髋”而是“抬腿”。换句话说,“送髋”表现为“抬腿”,但“抬腿”不等于“送髋”。 看着很“废话”是不是?其实“送髋”的是骨盆左右旋转配合抬腿,髋关节又连在骨盆上,一侧伸髋另一侧就会屈髋,进而带动骨盆旋转,一侧髋无法伸展相当于就会限制骨盆旋转,这就引发连锁反应 — 导致另一侧髋也就无法往前运动。 所以改善 腰椎-骨盆-髋关节 的灵活性是“送髋”技术的基础之一。 在实际跑步运动过程中,低于6分配是比较难体会100%的“送”出去这种感觉的,至少是550起步。这里不仅要求力量、速度,更需要整体的协调性、稳定性。速度提升后,小腿会自然的折叠,步幅会随着各个关节的运动增大,直至到达100%送髋的程度。 整体的感觉思路是 —— 骨盆旋出去带动大腿,大腿带动小腿,小腿踩地就蹬地。腿蹬地后,就进入向前摆动阶段,也就是大腿向前摆动。大腿前摆的动力来自髂腰肌,如果髂腰肌力量不够,就会出现大腿前摆无力,拖着腿跑的情况。 “送髋”不等于抬腿,但没有抬腿也就谈不上“送髋”了。 所以速度太慢,力度不够,这个感觉不对,一样的。 短跑,中短跑(接力或者箱根驿传这种),长跑(超长跑)训练方式都是完全不一样的,训练机制不同,包括热身和恢复都没有一样的,但是【髋】的训练都是一样的。 换句话说,不论多块多慢,脚落地的瞬间,不是蹬地。只是踏地,也不可能是送髋。不是蹬地,踏地的话,要么后脚跟先落地要么踩歪,路面就会啪啪的响。 一个地方不对,其他对方连带的不会对。 【接下】