Pytex — Школа Python разработки
871 subscribers
50 photos
1 video
22 links
Онлайн-школа Python разработки Pytex
https://pytex.school
Download Telegram
Разработчикам надо знать, как устроена аутентификация «под капотом», и как это самому реализовать и встроить на свой сайт. 

И чтобы помочь тебе разобраться в этой теме, школа Pytex организовывает вебинар с Senior разработчиком Артёмом Шумейко. 

16 декабря в 18:00 МСК ты разберешься:
— В чём разница между аутентификацией и авторизацией
— JWT vs Session: что выбрать и почему
— Как реализовать регистрацию пользователей
— Как работать с JWT токенами и сессиями
— Как организовать работу с базой данных
— Как всё это корректно подключить на фронтенде
и сразу реализуешь механику на проекте🔥

Чтобы не пропустить ссылку на вебинар, регистрируйся ⬇️

ХОЧУ НА ВЕБИНАР
👍83🤝2
#Дайджест
2025 год почти подошел к концу, у кого-то уже в наушниках играет «Last Christmas». Заиграла мелодия в голове? Только честно! 😉

У нас уже готовы крутые активности для тебя: 2 практических вебинара и подарки. Смотри ниже, что тебя ждет на этой неделе и заноси в календарь, декабрь будет интересным.

❄️ Уже завтра в 18:00 МСК пройдет практический вебинар «Пишем систему аутентификации и авторизации: сессии и токены» со спикером Артёмом Шумейко.

Что будет на уроке:
— понятная теория сессиям и JWT токенам
— практика: разберём на реальном приложении, как работает аутентификация
— ответы на вопросы от Senior разработчика

Если ты все еще не с нами, регистрируйся по ссылке ⬇️

ЗАПИСАТЬСЯ НА ВЕБИНАР ПО АУТЕНТИФИКАЦИИ

❄️ 18 декабря в 18:00 МСК вебинар «5 слоёв кэширования в веб-приложениях» со спикером Артёмом Шумейко.

ЗАПИСАТЬСЯ НА ВЕБИНАР ПО КЭШИРОВАНИЮ
5👍22
🔥Сегодня в 18:00 МСК стартует первый новогодний вебинар с Senior разработчиком Артёмом Шумейко на тему аутентификации и авторизации

На вебинаре ты:
— разберёшься в ключевых принципах аутентификации и авторизации через сессии и токены
— вместе с Артёмом Шумейко напишешь приложение, в котором реализуешь оба подхода.

После такого урока ты будешь уметь строить безопасную систему входа в приложение.  

🎁 Всех участников вебинара ждут подарки.

Еще не поздно зарегистрироваться на вебинар и получить максимум пользы в декабре⬇️

ХОЧУ НА ВЕБИНАР ПО АУТЕНТИФИКАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
521
Сегодня в 19:00 МСК пройдет повтор вебинара «Пишем систему аутентификации и авторизации: сессии vs JWT токены» в записи

На вебинаре Senior разработчик Артём Шумейко:
— разобрал ключевые принципы аутентификации и авторизации через сессии и токены
— показал, как реализовать оба принципа в приложениях.

Для тех, кто не успел подключиться вчера, сегодня в 19:00 МСК пройдет повтор в записи, ссылка на вход придет в бот

ЗАПИСАТЬСЯ НА ПОВТОР
6
3 проблемы кэширования, о которых часто забывают

Представим интернет-магазин. На главной странице показываются «Топ-товары недели». Если кэширования нет, сервер каждый раз обращается к базе данных и пересчитывает список. Это медленно и тратит ресурсы. С кэшом всё проще: однажды сформированный список сохраняется в быстрый хранилище, и при следующих запросах отдаётся прямо оттуда. Страница загружается быстрее, а база данных получает меньше нагрузки.

Что может пойти не так
1. Неправильное наполнение кэша

Допустим, мы хотим показывать к товарам ещё и рейтинг из внешнего сервиса. Чтобы не дергать его постоянно, мы кэшируем рейтинг. Но если API рейтингов отвечает медленно, приложение зависает в ожидании ответа. Мы ставим короткий timeout: если сервис не успел — отдаем данные без рейтинга. Проблема в том, что рейтинг не попадает в кэш, потому что запрос не завершился. В итоге при каждом запросе мы снова пытаемся достучаться до API → растёт нагрузка.

2. Пропажа данных во время сбоев

Когда база «лежит», кэш может спасать, потому что мы просто продолжаем отдавать ранее сохранённые товары. Но если TTL «топ-товаров» истёк в момент сбоя, данные пропадут. Лучше уметь отдавать устаревший кэш чуть дольше: пусть информация не новая, зато пользователь не видит пустую страницу.

3. Дублирование запросов

Если сотни пользователей одновременно открывают главную страницу, сервер может получить сотни одинаковых запросов на получение «топ-товаров». Без механизма объединения такие запросы будут обрабатываться по отдельности → лишняя нагрузка. Грамотное кэширование позволяет всем «ожидать» результат первого запроса, не повторяя работу много раз.

Если хочешь глубже разобраться в теме и увидеть, как кэширование работает в реальном приложении, присоединяйся 18 декабря  в 18:00 МСК к вебинару «5 слоёв кэширования в веб-приложениях».

ЗАПИСАТЬ НА ВЕБИНАР ПО КЭШИРОВАНИЮ
96
Сегодня четверг, а значит в 18:00 МСК стартует второй новогодний вебинар с Senior разработчиком Артёмом Шумейко на тему кэша.

На вебинаре ты:
— разберёшь теорию кэширования: уровни, механизмы, типы хранилищ
— поймёшь, где и зачем применять разные виды кэша
— на практике внедришь 5 уровней кэширования в реальное приложение

🎁 Всех участников вебинара ждут подарки.

Еще не поздно зарегистрироваться на вебинар и получить максимум пользы в декабре⬇️

ЗАПИСАТЬСЯ НА ВЕБИНАР ПО КЭШИРОВАНИЮ
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝432
This media is not supported in your browser
VIEW IN TELEGRAM
8🔥3
Мы завершили серию новогодних вебинаров с senior разработчиком Артёмом Шумейко

Спасибо всем, кто был с нами на уроках, задавал вопросы, писал комментарии и делился обратной связью 💚

Прочитали под сотню комментариев, что вам зашли эфиры! Мы очень постарались сделать уроки максимально полезными с точки зрения теории и примеров.

Раз вам понравился такой формат, мы постараемся чаще проводить открытые уроки 🙌🏻
209🔥5
Protocol в Python: шпаргалка для разработчика

Если ты до сих пор строишь зависимости через базовые классы и ABC, пора взглянуть на Protocol

Он позволяет описывать поведение без наследования, упрощает архитектуру и делает код гибче и чище.

На картинках всё, что действительно нужно знать про Protocol в Python ⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1052👍1
Рубрика #проверь_себя

В Pydantic есть объекты-валидаторы, которые используются для проверки и преобразования данных перед их присвоением полям модели, также для выполнения дополнительной логики валидации на уровне поля или модели.

Предлагаем выполнить следующее задание, связанное с работой валидаторов AfterValidator и BeforeValidator. Обычно такие валидаторы применяют как декораторы к функциям, но в этом примере мы рассмотрим их использование напрямую через классы.

Что будет выведено на экран при запуске кода? ⬇️

from typing import Annotated
from pydantic import BaseModel, ValidationError, AfterValidator, BeforeValidator


def is_less_than_100(value):
if value > 100:
raise ValueError(f'{value} is less than 100')
return value


def to_int(value):
return int(value)


def multiply(value):
return value * 3


MagicNumber = Annotated[int | str, AfterValidator(to_int), BeforeValidator(multiply)]


class MyModel(BaseModel):
val: Annotated[MagicNumber, AfterValidator(is_less_than_100)]


if __name__ == '__main__':
try:
print(MyModel(val='5'))
except (ValueError, TypeError, ValidationError) as err:
print(err)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤝1
Пояснение ко вчерашней задаче

Pydantic автоматически объединяет валидаторы из всех уровней вложенности Annotated в один линейный список, который выполняется последовательно. К полю val валидаторы применяются в следующем порядке:

* BeforeValidator(multiply) - запускается перед проверкой типа Pydantic, на этом этапе val всё ещё тот, что передан при создании модели. После BeforeValidator Pydantic пытается привести значение к типу, указанному в аннотации.
* AfterValidator(to_int) - запускается после приведения типа, указанного в аннотации.
* AfterValidator(is_less_than_100) - запускается после AfterValidator с учетом вложенности.

Итоговая цепочка событий:

При входящем значении val='5' BeforeValidator(multiply)отдает строку '5' * 3 = '555', далее AfterValidator(to_int) переводит '555' в int, и в финале валидатор AfterValidator(is_less_than_100) отсекает полученное число 555, так как оно больше 100.
3👍3
Опыт backend разработчика измеряется не только строками кода.

Кажется, у каждого бэкенд-разработчика есть свой набор «рабочих приключений», отражающий его путь.

Проверим по бинго?

Ставь 🔥, если собрал больше трёх пунктов
Please open Telegram to view this post
VIEW IN TELEGRAM
126👍3
Наш 2025 год

Самое приятное в подведении итогов года – это осознавать, как далеко мы продвинулись и изменились по сравнению с прошлым. Рассказываем, как прошёл этот год в Pytex ⬆️

Спасибо, что был с нами в этом году! Мы очень стараемся давать как можно больше пользы для разработчиков, поэтому нам приятно получать твою поддержку и благодарность 💚
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥44🥰11