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

Резултати

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

Пребарај: #sketches

当前筛选 #sketches清除筛选
Sabertoof's Arts!

@artbysabertoofs · Post #383 · 05.09.2025 г., 01:11

A few sketches done recently! First one for Ryker of his handsome fox. Then, McJicken's tiger, Farid! And lastly, Darius! 🐯 Thank y'all for the support lately! #art#sketches#wip

Anatomy Art Hub ☮️

@anatomyarthub · Post #1925 · 01.10.2023 г., 06:00

#наброски#sketches Как нарисовать набросок людей. Первое, что нужно сделать, — разобраться с пропорциями. Для этого нарисуйте на листе линию и разбейте её на семь-восемь равных частей, если рисуете человека стоя, или на пять-шесть, если фигура сидит. Теперь заполните нарисованную шкалу сверху вниз, как на картинке. Сначала нарисуйте голову — она должна занять одно деление, затем грудную клетку — два деления, таз примерно на четвёртом делении, колени на пятом и стопы. Не забудьте, что у человека должны быть шея и руки, а ещё предусмотрите место под переходы от одной узловой точки к другой, например, от грудной клетки до таза. Чтобы не запутаться с пропорциями внутри самой фигуры, не прорисовывайте сразу линии тела. Оформите мышцы овалами, выделите суставы. Этот шаг многие пропускают, считая его примитивным, но именно он помогает новичкам сделать фигуру правильной. How to draw a sketch of people. The first thing to do is understand the proportions. To do this, draw a line on a sheet of paper and divide it into seven or eight equal parts if you are drawing a standing person, or into five or six if the figure is sitting. Now fill the drawn scale from top to bottom, as in the picture. First draw the head - it should take one division, then the chest - two divisions, the pelvis at about the fourth division, the knees at the fifth and the feet. Don’t forget that a person must have a neck and arms, and also provide space for transitions from one nodal point to another, for example, from the chest to the pelvis. In order not to get confused with the proportions within the figure itself, do not immediately draw the lines of the body. Form the muscles into ovals and highlight the joints. Many people skip this step, considering it primitive, but it is what helps beginners get the figure right. @anatomyarthub

123•••1011
ПретходнаСтраница 1 од 11Следна