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

Резултати

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

Пребарај: #citizenship

当前筛选 #citizenship清除筛选
Borkena

@borkena · Post #5777 · 14.02.2026 г., 17:58

Dehumanization, structural violence and the collapse of citizenship : A sociological and social-psychological analysis of the situation of the Amhara population in Ethiopia። Read more. https://borkena.com/2026/02/14/dehumanization-structural-violence-and-the-collapse-of-citizenship-a-sociological-and-social-psychological-analysis-of-the-situation-of-the-amhara-population-in-ethiopia/#Ethiopia#politics#Amhara#citizenship

America 🇺🇸 News & Politics

@America · Post #10488 · 11.04.2026 г., 22:06

🛂🇺🇸RECORD 6,700 AMERICANS RENOUNCE CITIZENSHIP 🔹 2025 sees highest exodus in US history as wealthy Americans flee to tax havens overseas 🏝️💰 🔹 Switzerland, Singapore, UAE top destinations with total wealth transfer of $2.3 trillion 📊✈️ 🔹 IRS crackdown on overseas accounts drives surge alongside political polarization fears 🏛️⚖️ 🔹 Immigration lawyers report 300% increase in consultation calls from high-net-worth clients 📞💸 When the rich start running, what does that say about where we're headed? 🤔💭 American Dream or American Nightmare? You decide 🇺🇸🔥 #USNews#Citizenship#Taxes#WealthFlight @america

BadVolf

@badvolfnews · Post #1516 · 16.03.2024 г., 18:08

🇷🇺❤Today marks a monumental chapter in my journey, as I proudly announce that I've become a Russian citizen and participated in my very first election here. This significant step is more than just a formal process; it symbolizes my deep connection and commitment to my new home, its people, and its future. As I stood in the polling station, casting my vote, I was overwhelmed with a sense of responsibility and belonging. This act of civic engagement is a powerful reminder of the role we each play in shaping the course of our community and nation. It's a day filled with emotions - pride, hope, and anticipation for what lies ahead. Joining my fellow citizens in this democratic process, I felt a strong bond of unity and shared purpose. Here's to embracing new beginnings, contributing to the collective future, and making every moment count in this beautiful journey. #Citizenship#ElectionDay#NewChapter#RussianCitizen🇷🇺✨

NIDO Russia (НИДО)

@nido_russia · Post #1827 · 17.10.2024 г., 06:26

Documentation News: In Moscow, two men who failed to register for military service were stripped of their citizenship This was reported on the Telegram channel by the official representative of the Russian Ministry of Internal Affairs Irina Volk. Volk recalled that, in accordance with Russian law, every man with acquired citizenship must register for military service within two weeks. Violators face punishment. Our advise to members: 1. Comply with local laws. Register for military service if you are of draft age and have acquired citizenship. 2. Similarly, if you are of draft age and have no plans to register for military service, then you should consider not applying for citizenship. Like the popular saying goes, you can't eat your cake and have it. https://t.me/nido_russia/1827 #laws#naturaliation#documentation#passport#citizenship Source: Life(.ru)

NIDO Russia (НИДО)

@nido_russia · Post #1675 · 28.06.2024 г., 15:14

The Chairman of the Investigative Committee of the Russian Federation, Alexander Bastrykin, stated that more than 30 thousand migrants who recently received Russian citizenship and did not register for military service were "caught" in the country, about 10 thousand of them were sent to the special operation zone. Along with citizenship, according to him, they received "not only rights, but also a constitutional obligation to protect the country that accepted them." “Comrades, digging trenches and creating fortifications requires really good working hands. Today they are joining the ranks of our rear units that are building these fortifications.” he said. Migrants seeking citizenship must bear this in mind. Subscribe: @nido_russia https://t.me/nido_russia/1675 Sources: TASS, Yugopolis #citizenship#naturalisation#naturalization#Russia#Ukriane#svo

NIDO Russia (НИДО)

@nido_russia · Post #1661 · 23.06.2024 г., 12:26

📢 On July 1, 2024 , a law comes into force that provides for a 20% indexation of state fees. So from 1 July, state fees for a number of state services will increase: 🔸 Temporary residence permit: from 1600 to 1920 Rubles; 🔸 Residence permit: from 5000 to 6000 Rubles; 🔸 Russian citizenship: from 3500 to 4200 Rubles; 🔸 Registration at the place of residence: from 350 to 420 Rubles; 🔸 Visa renewal: from 1000 to 1200 Rubles; 🔸 Issuance of invitations to the Russian Federation: from 800 to 960 Rubles; 🔸 Work permit: from 3500 to 4200 Rubles; 🔸 Permit to hire foreign workers: from 10,000 to 12,000 Rubles; 🔸 Travel passport; from 5000 to 6000 Rubles; 🔸 Travel passport up to 14 years old: from 2500 to 3000 Rubles. ❗️ Make all relevant applications before 1 July, to avoid paying the new rate. #state_fee#госпошлина#TRP#RP#RVP#VNZH#citizenship#nido#nidorussia Subscribe: @nido_russia https://t.me/nido_russia/1661