Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
#didaktika
🔥"Sakkizoyoq" metodi
☄️Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni bir daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#didaktika
🔥"Baraban" metodi (Go'zal Aminjonova) bilan ona tili va adabiyot darslarini qiziqarli qiling.
Ochiq darslarda va kundalik joriy nazorat darslarida bu usuldan foydalansangiz, aniq moʻljalni joyiga urasiz. Tahlilga kirganlar ham darsingizda maza qilishadi.
☄️Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni bir daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#didaktika
🔥"Tugun kimga tushdi?" o'yini bilan ona tili va adabiyot darslarini qiziqarli qiling.
☄️Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni bir daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#Didaktika
👏O'quvchilarni kitob olamiga olib kirish, nutqini boyitish, dunyoqarashini kengaytirish uchun yaxshi usul ekan.
Bu borada sizda qanday metodlar bor? Bir daqiqalik videoga olib jo'nating. Tajriba almashamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#Didaktika
🔥Subject: Relatives.
Til (o‘zbek, rus, ingliz, nemis...) va adabiyot fanidan darslaringizni qiziqarli o‘yinlar bilan boyiting. "Til va adabiyot ta'limi" telegram o‘zanida shu maqsadda yangi rukn ochildi.
☄️Siz mashg‘ulotlaringizda qanday o‘yinlardan foydalanasiz? Dars uslubingizni 1 daqiqalik videoga olib bizga jo‘nating. Eng yaxshilarini kanalimizda berib boramiz.
Bu bilan maktabingiz, o‘quvchilaringiz, kasbiy mahoratingizni tanitasiz. Qolaversa, hamkasblar bilan tajriba almashasiz.
🎁Eng yaxshi ta'limiy rolikka "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#Didaktika
🔥Mavzu: Zid ma'noli so‘zlarni topish.
Til (o‘zbek, rus, ingliz, nemis...) va adabiyot fanidan darslaringizni qiziqarli o‘yinlar bilan boyiting. "Til va adabiyot ta'limi" telegram o‘zanida shu maqsadda yangi rukn ochildi.
☄️Siz mashg‘ulotlaringizda qanday o‘yinlardan foydalanasiz? Dars uslubingizni 1 daqiqalik videoga olib bizga jo‘nating. Eng yaxshilarini kanalimizda berib boramiz.
Bu bilan maktabingiz, o‘quvchilaringiz, kasbiy mahoratingizni tanitasiz. Qolaversa, hamkasblar bilan tajriba almashasiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#didaktika
#adabiyot
Abdulla Qahhorning "Asror bobo" hikoyasi tahlili
✅Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni bir daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi"jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt
✈️Telegram
✅Murojaat
♾Muhokama
🌐Instagram
#didaktika
#adabiyot
Qofiya va raviy qanday topiladi?
☄️Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni bir daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#didaktika
#adabiyot
Mavzu: Mavlono Lutfiyning "Xoh inon, xoh inonma" g'azalini yodlatishusuli
☄️Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni 1 daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
✅Bu bilan maktabingiz, o‘quvchilaringiz, kasbiy mahoratingizni tanitasiz. Qolaversa, hamkasblar bilan tajriba almashasiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#didaktika
#ona_tili
Teng va tobe bog'lanish.
☄️Siz darsingizda qanday metodlardan foydalanasiz? Dars uslubingizni bir daqiqalik videoga olib bizga jo‘nating. "Til va adabiyot ta'limi" kanalida berib boramiz.
🎁Eng yaxshi ta'limiy rolik muallifiga "Til va adabiyot ta'limi" jurnalining choraklik to‘plami taqdim etiladi.
Videoni barcha ijodkor o'qituvchilarga yuborib qo'yamiz.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram
#didaktika
#литература
🔥В рамках конкурса образовательных роликов Айнур Атабекова, преподаватель русского языка и литературы Академического лицея при РГУ нефти и газа имени И.М.Губкина поделилась с нами следующим видео с игрой "Найди пару". Это увлекательное и образовательное занятие, которое помогает ученикам развивать различные навыки, включая мышление, скорость реакции и память.
✅Данная интерактивная игра создана с помощью онлайн-сервиса Interacty.me
Ссылка на данную игру https://interacty.me/projects/f5480512fb61362c
А какими методами вы пользуетесь на своих занятиях? Снимите минутное видео о методе проведения вашего урока и отправьте его нам. Мы будем транслировать его на нашем канале "Til va adabiyot ta'limi".
Автор лучшего образовательного ролика получит ежеквартальный сборник научно-методического журнала "Til va adabiyot ta'limi".
Не забудьте поделиться данным сообщением с творческими учителями.
🌐Sayt✈️Telegram✅Murojaat♾️Muhokama📱Instagram