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

Резултати

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

Пребарај: #thatsong

当前筛选 #thatsong清除筛选
꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8736 · 10.04.2026 г., 13:59

╰─➤3:14 Y sintiéndote así Estás tocando cima pero no te ves ahí Viviendo en una vida que otros quieren para ti Quieres salir ya de aquí cómo vas a hacer El día que no te quede más tiempo que perder Soñando con el mundo que querías conocer Dime que vas a hacer Que vas hacer Porque no aguantas más…🎶 #ThatSong🎤 #Lemot ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8635 · 15.03.2026 г., 14:14

╰─➤2:57 Heaven knows when I close my eyes I get lost in your paradise Daydreaming (Daydreaming) I can't stop dreaming about you Imagine all the things we could do I can't stop dreaming about you (about you about you) Daydreaming (Daydreaming) I wanna get you outta my head… 🎶 #ThatSong🎤 #Jordan_Frye ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8338 · 31.12.2025 г., 11:03

╰─➤3:19 Tu boquita de fresa mi mojito de menta las cosas bonitas al final se encuentran Noche ochentera (oh) toa la noche entera (noche entera) Hay una cola que tela, pero ven con quien quieras (ven con quieras, woh-oh) Noche ochentera toa la noche entera Cógeme la cadera, que bailamos la lenta tú y yo La noche entera-era, eh-eh-eh… 🎶 #ThatSong🎤 #Vicco ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8312 · 24.12.2025 г., 10:55

╰─➤4:39 A crowded room, friends with tired eyes I'm hiding from you and your soul of ice My God, I thought you were someone to rely on Me? | guess | was a shoulder to cry on A face of a lover with a fire in his heart A man undercover, but you tore me apart… 🎶 #ThatSong🎤 #First_To_Eleven ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8203 · 06.11.2025 г., 15:19

╰─➤3:44 I don't wanna be your ex We way too good at being friends Can we still hangout On the low, get wild I don't wanna be your, I don't wanna be your Hit ya girl up with a text, when you're alone and feeling stressed I don't gotta be in love with you, to love you I don't wanna be your, so don't treat me like your E-e-e-e, e-e-ex… #ThatSong🎤 #Kiana_Ledé ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8074 · 10.09.2025 г., 14:23

╰─➤2:34 Ale, (Ale) j'ai plus la deter laisse tomber (laisse tomber) Aie, faut qu'on laisse tomber Hmm lol, tu regrettes à tous les coups (coups) Je t'aime un peu moins quand tu joues (joues) Maintenant c'est chacun sa route (ahh) Hmm lol, tu regrettes à tous les coups (coups) Je t'aime un peu moins quand tu joues (joues) Maintenant c'est chacun sa route (ahh) … 🎶 #ThatSong🎤 #mademoisellelou ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #8025 · 24.08.2025 г., 12:53

╰─➤3:52 So if it's any consolation, you're my favorite (ah) It's you and I, you gotta know that, right? Isn't it obvious? (Ah-ah) You know that we got enough (ah-ah) Isn't it obvious (ah-ah) That I'm sure? Mm-mm (I'm sure, I'm sure) Isn't it obvious? (Oh, no, ah-ah) You know that we got enough (yeah, ah-ah) Isn't it obvious (ah-ah)… 🎶 #ThatSong🎤 #Alessia_Cara ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #7892 · 07.07.2025 г., 15:35

╰─➤3:31 Against my better judgement I'm sitting in your car (ooh) I'm writing down my number on the inside of your arm Against my better judgement I'm letting down my guard (ooh) I know the repercussions of cruising boulevards With girls like you Ooh-oh, ooh-oh, ooh-oh With girls like you… 🎶 #ThatSong🎤 #Sofia_Camara ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #7813 · 20.06.2025 г., 14:24

╰─➤4:32 And don't say hello, 'cause I got high again And forgot to fold my clothes 'Cause I'm too messy, and then I'm too fucking clean You told me, "Get a job, " then you ask where the hell I've been And I'm too perfect 'til I open my big mouth I want to be me, is that not allowed? And I'm too clever, and then I'm too fucking dumb… 🎶 #ThatSong🎤 #Lola_Young ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻ ENLACE ⏏️

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #7557 · 21.03.2025 г., 20:04

╰─➤2:51 When we talk about, everything that happened Rather sit around, don't need another lesson You'd just call me out, call me when I'm distant Always run your mouth, I don't wanna listen All the shit you put me through, put me through And now you're talkin' 'bout me too And I know that I could never get away from you Yeah, I'll wait for you to turn around and talk it through But we won't…🎶 #ThatSong🎤 #The_Marías ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻

꧁☬Pinceladas del Alma☬꧂

@pinceladasdelalma · Post #7506 · 28.02.2025 г., 13:30

╰─➤3:54 If you feel like getting close, don't If you're lookin' for my heart, let go If you feel like getting close, don't fall 'Cause the minute that we touch, locked down Yeah, the minute that we touch, locked down (ayy, ayy) I ain't tryna feel my heart break, no I might never wanna let you go 'Cause the minute that we touch, locked down Yeah, the minute that we touch, locked down Oh, if you're lookin' for my heart Ooh, ooh.. #ThatSong🎤 #Destiny_Rogers ⇆ㅤ◁ㅤ ❚❚ㅤ ▷ㅤ↻

ПретходнаСтраница 1 од 3Следна