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 слични објави

Пребарај: #nyerisendi

当前筛选 #nyerisendi清除筛选
Cerdas Gunakan Obat

@cerdasgunakanobat · Post #3660 · 11.05.2020 г., 22:21

"Apakah semua nyeri sendi sama?" . https://www.instagram.com/p/CAEGGHFJvkb/?igshid=4its7hm01jdw . https://m.facebook.com/story.php?story_fbid=127337912267505&substory_index=0&id=103148744686422 . Apakah anda atau keluarga pernah mengalami nyeri sendi? Atau bahkan sering? Nyeri sendi merupakan munculnya rasa tidak nyaman, rasa sakit atau peradangan pada setiap bagian dari sendi. Hal ini termasuk tulang rawan, tulang, ligamen, tendon, atau otot. . Nyeri yang tiba-tiba muncul pada tubuh sering dianggap sebagai hal yang sama, yaitu nyeri sendi. Padahal, bisa jadi rasa sakit yang terjadi merupakan nyeri tulang. Apa sebenarnya perbedaan antara nyeri sendi dan nyeri tulang? Bagaimana cara membedakannya? Apakah semua rasa sakit yang muncul pasti berasal dari sumber yang sama? . Apa saja penyakit yang umùmnya terkait nyeri sendi? Apa saja antangan untuk setiap jenis nyeri sendi? Bagaimana mengenali tanda bahaya nyeri sendi? . Simak penjelasannya pada: NgobrAs SaDis (Ngobrol Asyik Sambil Diskusi) Vol-2 Kamis, 14 Mei 2020 Pukul 20.00 - 21.00 WIB Di Channel YouTube CoDEIn.Pharm . Narasumber: dr. Agustiawan, Founder dan Ketua Health Education and PROmotion (HEPP) Moderator: apt. Bayu Sandi, Co-founder CoDEIn.Pharm dan Komunitas Apoteker Indonesia GRATIS!!! . Pendaftaran melalui tautan berikut: bit.ly/ngobrassadisvol2 Narahubung: - Ijoel 0853 1185 2829 - Budi 0813 1715 1917 . Jangan sampai ketinggalan ya!! Akan ada HADIAH SOUVENIR menarik bagi peserta yang beruntung dan mengajukan pertanyaan. Syaratnya follow minimal salah satu media sosial CoDEIn.Pharm: instagram @codein.pharm, fanpage Facebook "Informasi dan Komunikasi Kefarmasian", grup telegram @infodandiskusikesehatan, channel telegram @codeinpharm. Juga instagram @inpharcom.bukukesehatan . #codeinpharm#ngobrassadis#youtube#nyerisendi#rematik#artritis#gout#osteoporosis

Cerdas Gunakan Obat

@cerdasgunakanobat · Post #3673 · 06.06.2020 г., 09:04

Pertolongan Pertama pada Masalah Kesehatan di Rumah . https://www.instagram.com/p/CBFiw27p586/?igshid=xcbgrvqf3qa4 . Siapa sih yang mau sakit? Gak ada kan, ya? Semua orang maunya sehat dan terhindar dari penyakit, apalagi yang namanya Covid-19. Jauh-jauh deehh... . . Tapiiii...kalo ternyata Kita udah berupaya mencegah supaya tidak sakit, ternyata masih ada aja masalah kesehatan yang dihadapi saat di rumah, repot juga dalam kondisi begini. Entah itu kecelakaan kecil, penyakit kulit, demam, kejang, diare, nyeri sendiri, eeh..sendi, lumayan bikin pusing ya? . . Yuk kita bahas tuntas dalam program SEIMAN yang ke-5 bersama dr. Agustiawan @agustiawan28 dan Kak apt. Erie Gusnellyanti, MKM @nellysyukri . Live di IG @infokom.farmasi Minggu, Juni 2020 Pukul 15.30 - 16.30 WIB. . . GRATIS dan BERHADIAH LHO!!! Syaratnya: Follow 3 akun berikut: - @infokom.farmasi - @inpharcom.bukukesehatan - @nellysyukri . . Sebarkan yaaa.. . . IG @infokom.farmasi Twitter @infokom.farmasi FB 'Informasi Kefarmasian dan Kesehatan' Email: [email protected] . . . #infokefarmasian#infokesehatan #inpharcom#bukukesehatan#bukufarmasi#gemacermat#cerdasgunakanobat#demam#kejang#diare#p3k#nyerisendi#kecelakaan#penyakitkulit