@cocinarparacuatro · Post #832 · 12.02.2024 г., 19:49
Peras al vino Malvasía #postreshttps://youtu.be/U3MtxxhJwaE
Hashtags
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
Пребарај: #postres
@cocinarparacuatro · Post #832 · 12.02.2024 г., 19:49
Peras al vino Malvasía #postreshttps://youtu.be/U3MtxxhJwaE
Hashtags
@cocinarparacuatro · Post #677 · 30.03.2023 г., 17:18
Crema de mandarina #postreshttps://youtu.be/FXVD_kK7_44
Hashtags
@cocinarparacuatro · Post #658 · 15.02.2023 г., 12:35
Cruasanes de mantequilla con chocolate #postreshttps://youtu.be/Zs8fIv5x4a4
Hashtags
@cocinarparacuatro · Post #648 · 23.01.2023 г., 19:25
Tarta de chocolate #postreshttps://youtu.be/UPbTnKcJlN8
Hashtags
@cocinarparacuatro · Post #639 · 04.01.2023 г., 16:52
Marquesotes embuchados #postreshttps://youtu.be/WjcAAOqkofc
Hashtags
@cocinarparacuatro · Post #634 · 27.12.2022 г., 11:44
Pan de plátano #postreshttps://youtu.be/cdn4DSD-9yQ
Hashtags
@cocinarparacuatro · Post #618 · 15.11.2022 г., 17:46
Copa de chocolate y nata #postreshttps://youtu.be/0iTypIFjKf8
Hashtags
@cocinarparacuatro · Post #606 · 20.10.2022 г., 21:19
Natillas de piña #postreshttps://youtu.be/30paKgWV1UY
Hashtags
@emplatados · Post #213 · 04.07.2019 г., 03:22
🍜Flan de Coco INGREDIENTES: 🔸¾ taza de azúcar granulado 🔸2 latas de leche de coco 🔸1 lata de leche condensada azucarada 🔸5 huevos grandes 🔸1 cucharadita de extracto de coco 🔸Crema batida 🔸Coco rallado tostado PREPARACIÓN: 🔸Calentar el azúcar en una cacerola muy resistente sobre fuego medio-lento. 🔸Mezclar el azúcar constantemente, de 3 a 4 minutos o hasta que se disuelva y adquiera color de caramelo. 🔸Verter el azúcar en el fondo de un molde profundo para flan de 9 pulgadas de diámetro y rápidamente distribuirlo en el fondo y en los lados para cubrirlos. 🔸Poner la leche de coco, la leche condensada azucarada, los huevos y el extracto de coco en una licuadora. 🔸Licuar los ingredientes durante 5 segundos. 🔸Verteela en el molde preparado; cubrirlo ligeramente con papel de aluminio. 🔸Colocar el molde en una bandeja a baño maría con agua caliente a una pulgada de profundidad. 🔸Hornear durante 1 hora y 25 minutos o hasta que al insertar un cuchillo en el centro salga limpio. 🔸Retira el molde del agua. 🔸Dejarlo enfriar. Refrigerarlo durante 4 horas o durante la noche. 🔸Antes de servir pasar una pequeña espátula alrededor del borde del molde y voltearlo sobre un plato. 🔸Decorar con crema batida y coco rallado. #Postres
Hashtags
@cocinarparacuatro · Post #156 · 24.06.2019 г., 08:51
Tostadas francesas. Básicas y fáciles #postreshttps://youtu.be/5FlR64_jQCg
Hashtags
@gourmeturbano · Post #19861 · 18.11.2024 г., 23:24
#COMIDASALUDABLE#LACTEOS#POSTRES🍰 | El postre más saludable que se debe tomar a cualquier edad, según un nuevo estudio https://ift.tt/AulPL8q November 18, 2024 at 06:30PM
Hashtags
@gourmeturbano · Post #19920 · 06.12.2024 г., 16:24
#WHISKY#CARNES#POSTRES#RECETAS🥃🥩🍰 | 2 recetas en las que el whisky será tu mejor aliado para potenciar el sabor https://ift.tt/QxL3Ia0 December 06, 2024 at 11:45AM