Денис Аникин (Denis Anikin) – известный разработчик и эксперт в области Python и веб-разработки. Он специализируется на использовании FastAPI как основного фреймворка для создания бекендов на Python. В данном уроке мы рассмотрим, почему FastAPI является отличным выбором для разработки веб-приложений, а также как его использовать для создания мощных и эффективных бекендов.
FastAPI – это современный веб-фреймворк для создания API на Python, который предлагает высокую производительность и удобство использования. Этот фреймворк основан на стандарте OpenAPI и использует асинхронные функции для обработки запросов, что делает его очень быстрым и эффективным. Благодаря автоматической генерации документации API на основе стандарта OpenAPI, FastAPI позволяет создавать API с минимальными усилиями.
Давайте рассмотрим основные преимущества FastAPI и как его использовать для создания бекендов на Python:
- Установка FastAPI
Для установки FastAPI достаточно выполнить следующую команду:
pip install fastapi
- Установка сервера ASGI
FastAPI требует ASGI-совместимого сервера для запуска веб-приложения. Один из самых популярных серверов – uvicorn. Вы можете установить его следующей командой:
pip install uvicorn
- Создание базового приложения FastAPI
Для создания базового приложения FastAPI вам необходимо создать файл Python и добавить следующий код:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
- Запуск сервера
Для запуска сервера используйте следующую команду:
uvicorn app:app --reload
Эта команда запустит сервер uvicorn и загрузит ваше приложение FastAPI.
- Создание эндпоинтов
FastAPI позволяет определять маршруты и обработчики для них с помощью специальных декораторов. Например, для создания GET-метода, который вернет данные о пользователе, вы можете использовать следующий код:
@app.get("/users/{user_id}")
def read_user(user_id: int):
return {"user_id": user_id}
- Документация API
FastAPI автоматически генерирует документацию API на основе стандарта OpenAPI. Чтобы просмотреть документацию вашего API, перейдите по ссылке http://127.0.0.1:8000/docs
.
- Работа с базой данных
FastAPI легко интегрируется с базами данных, такими как PostgreSQL, MySQL, SQLite и др. Для работы с базой данных вам необходимо установить драйвер для вашей базы данных и настроить подключение. Вы можете использовать библиотеку SQLAlchemy для работы с различными базами данных.
- Аутентификация и авторизация
FastAPI предлагает встроенные инструменты для реализации аутентификации и авторизации в ваших приложениях. Вы можете использовать стандартные методы аутентификации, такие как токены доступа и refresh-токены для обеспечения безопасности вашего приложения.
В заключение, FastAPI является мощным и эффективным фреймворком для создания бекендов на Python. Он предлагает высокую производительность, удобство использования и отличную документацию API. Если вы хотите создать мощный и эффективный бекенд на Python, рекомендуется использовать FastAPI и следовать рекомендациям Дениса Аникина.
хороший и интересный доклад, хотелось бы почаще видеть работы этого человека
Крутой доклад. Спасибо
ВНЕДРЕНИЕ зависимостей!!!
асинхронность как бы всегда была если че.. просто мало кто знает что асинк это сахар над генератором.🤣раньше просто на том же Flask писали асинхронность с помощью генираторов. оно больно, согласен, современный подход прост и понятен всем. ну и FastAPI, это не прорывной фреймворк а просто взяли чудище скарлет которого боялись все больше чем Flask, отмыли, постригли, косметикой помазали, духами пшик и все, народ уже не так сильно боится скарлета. главное не говорить им что это скарлет.🤣часто слышу тип – "в доках fastapi все слишком просто приведено, остальное надо самому додумывать искать и тд..". те кто в теме, если им не хватает доков fastapi, ищут доки скарлет и реализации, ну и тд.. на скарлет.😁для api он хорош. но не под все он подходит, гора нюансов все же за плечами висит… с Flask все ок, просто мало кто умеет его готовить и от этого инфы тоже не много.. поэтому большинство или на Django, или FastAPI (если адекваты то выбирают под задачи).😁
Спасибо за доклад, я для себя многое структурировал.
Инетересно посмотреть, как быстро получить админку… 😀
Блин, это стендап или что?
Главное не смотреть в исходники этого самого фастапи.
Ну и не все живут RESTом.
звук очень плохой(
Жаль только, что по итогу, фаст апи избавляет нас от кучи работы в 1 ситуациях и это всеми расхваливается, но так же накладывает на нас кучу другой работы, сделать которую по итогу гораздо труднее, чем пример про джанго
FA это кал для смузихлёбов. Aiohttp – выбор профессионала
мда…. тут джангу не можешь освоить, потому что не работает в IT и нет постоянной практики, а уже много вакансий требуют фастапи.
Спасибо, вкусно! Как скоро мы придем к ситуации, что на каждый чих будет свой фреймворк?
Интересно как реализуются CBV внутри FastAPI
На слайдах говнокод чудовищный. Надеюсь, докладчик просто торопился. Еще он не понимает, что такое dependency inversion, к сожалению. Неприятно, что теперь такие доклады стали нормой(
Чувак, инверсия зависимостей и внедрение зависимостей (Depends()) это разные вещи, посмотри
сейчас в поисках работы и обнаружил что практически везде либо уже требуется FastAPI, либо собираются на него переезжать))) вообще люто быстро штука появилась и уже в энтерпрайзе во всю работает)))
Depends это элегантный способ внедрения зависимости, а не инверсия зависимостей. Вспомни SOLID.
Доклад слабоват, в FA до ебени фени батареек, о которых ни слова. (Обработчики аутентификации, исключений, расширение сваггера, middleware). Короче очередной helloworld по фастапи.
Некоторое дополнение: в докладе я говорю, что нельзя генерировать рандомные данные по пайдентик моделям. После доклада мне подсказали — можно! С помощью hypothesis. Очень крутая библиотека, кстати.
Почему в FastApi нет создания роутов из структуры каталогов?