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

Резултати

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

Пребарај: #karagarga

当前筛选 #karagarga清除筛选
PT资讯频道

@PrivateTrackerNews · Post #773 · 03.08.2019 г., 16:27

#Karagarga (KG) Donations (2019) We have now collected all the funds required. Donations are closed again until 2020. Thank you for your contributions. We've also handed out all donor stars. If we missed you through administrative oversight, please contact ***. 捐款(2019年) 我們現在收集了所需的所有資金。 捐款將再次關閉,直到2020年。 感謝您的貢獻。 我們還發放了所有捐贈明星。 如果我們通過行政監督錯過了您,請聯繫***。

Hashtags

PT风向旗

@Ptfxq · Post #375 · 14.10.2022 г., 22:00

#karagarga#KG The Pot The pot system has been functioning well for more than a decade now, big thanks to all subtitlers and pledgers. Please check if you have claimed any pots. Go to your profile, and after Pot Pledges click on (claimed pots). If you are working on a pot, leave a comment there about progress, and update that post at least every 3 months. If not, cancel your claim. A dormant claim can discourage a potential subtitler. Also, please keep an eye from time to time on pots you started or pledged to (see Pot Pledges in your profile). If good subtitles appeared in the meantime, report that pot with a link to the subs. If you want to subtitle a film for which the pot has been claimed long ago without any news, please contact one of us (corvusalbus, flipflink, cyzs, musiclova). Happy subtitling and viewing!

PT风向旗

@Ptfxq · Post #279 · 28.07.2022 г., 23:35

#KaraGarga#KG#开放捐赠 2022-07-26 Annual Donations (2022) Dear all, we've to collect donations for server / hosting expenses for the year ahead. Please contact stefflbw by pm if you can contribute this year. If you have donated in 2020 or 2021 you can follow the same link / method. In that case please PM stefflbw (with the transaction details) when the donation is complete. If you do not wish to have a donor star activated beside your profile name, please let us know. "What is a suitable amount?" is a frequently asked question. Donations between $10 and $50 have been the most typical. Occasionally members have donated substantially more but the bulk of the annual bill is generally financed by a high number of "smaller" donations. We will post regular updates on the donations total percentage below. Thank you, the KG jungle gym team

PT风向旗

@Ptfxq · Post #926 · 16.08.2025 г., 16:00

#KaraGarga#KG#开放捐赠#慢讯#群友投稿 只是年度捐赠,没有捐入 Dear all, we are commencing our annual donations drive. The funds collected will cover server / hosting expenses from September 2025 to September 2026. How much might a member donate? A typical donation amount in previous years was $10 to $50. A few members have donated substantially more but the bulk of our funds is collected through a higher volume of typical donations. If you have the opportunity to donate in 2025, please PM () for instructions. (If you have donated previously, the instructions have not changed) Much love from The Crow Sanctuary boffins. Target percentage: Aug 3: 17% Aug 4: 28% Aug 5: 37% Aug 6: 47% Aug 7: 56% Aug 8: 69% Aug 9: 74% Aug 10: 77% Aug 11: 80% Aug 12: 85% Aug 14: 87% Aug 15: 90%