[TDD] Python. Пишем свой фреймворк (2019)
Узнайте, как создать свой собственный веб-фреймворк Python!
«Не изобретай велосипед» — это обычная мантра программирования, которую мы слышим почти каждый день. Но что, если вы хотите узнать больше о колесе? Что, если вы хотите узнать, как создать чертово колесо, чтобы сделать следующую итерацию лучше, быстрее или сильнее? Часто это хорошая идея, чтобы заново изобрести колесо, особенно когда дело доходит до обучения — именно об этом и идет этот курс!
В этом курсе вы узнаете, как разработать свою собственную веб-среду Python, чтобы увидеть, как все работает под поверхностью Flask, Django и других основанных на Python веб-сред.
Сначала вы узнаете, как создать синхронную веб-инфраструктуру на основе WSGI, как Django и Flask. После того, как основные функциональные возможности будут созданы, вы создадите тестовый клиент, и с этого момента мы будем следовать базовой тестовой разработке. Как только фреймворк будет завершен, вы упакуете его и загрузите в PyPI (индекс пакетов Python). Затем вы разработаете небольшое веб-приложение с только что созданной платформой и развернете его в Heroku.
Самое главное, что вы, как разработчик, будете создавать что-то для других разработчиков, что может немного отличаться от того, что вы делаете в своей повседневной работе, и, таким образом, вы многому научитесь.
Цели обучения
К концу этого курса вы сможете:
- Объясните, что такое WSGI и зачем он нужен
- Создайте базовую веб-инфраструктуру и запустите ее с Gunicorn, WSGI-совместимым сервером
- Разработка основных обработчиков запросов, маршрутов и шаблонов
- Реализовать основанные на классах обработчики маршрутов
- Протестируйте свой фреймворк с помощью модульных тестов и попробуйте разработку на основе тестирования
- Создайте тестовый клиент для тестирования API без необходимости раскручивать сервер
- Реализуйте пользовательские обработчики исключений, чтобы обеспечить корректную обработку ошибок 404 (не найдено) и 500 (внутренняя ошибка сервера)
- Разрабатывать решения для управления статическими файлами и промежуточным программным обеспечением в рамках
- Управляйте разрешенными методами для ваших обработчиков запросов
- Создайте собственный класс ответа, чтобы упростить создание ответа
- Создайте пакет Python и загрузите его в PyPI
- Разработайте веб-приложение, используя созданную вами инфраструктуру, и разверните его в Heroku.
Инструменты и Технологии
- питон
- WSGI
- Gunicorn
- Pytest
- PyPI
- Heroku
Предпосылки
Чтобы получить максимальную отдачу от этого курса, вы должны иметь хорошие знания Python 3.
Вы также должны иметь четкое представление о следующих основах Интернета и Интернета:
- IP-адреса, структуры URL и DNS
- Веб-браузеры и веб-серверы
- HTTP-запросы и ответы