Using FastAPI as the primary framework for Python backends by Denis Anikin

Posted by


Денис Аникин (Denis Anikin) – известный разработчик и эксперт в области Python и веб-разработки. Он специализируется на использовании FastAPI как основного фреймворка для создания бекендов на Python. В данном уроке мы рассмотрим, почему FastAPI является отличным выбором для разработки веб-приложений, а также как его использовать для создания мощных и эффективных бекендов.

FastAPI – это современный веб-фреймворк для создания API на Python, который предлагает высокую производительность и удобство использования. Этот фреймворк основан на стандарте OpenAPI и использует асинхронные функции для обработки запросов, что делает его очень быстрым и эффективным. Благодаря автоматической генерации документации API на основе стандарта OpenAPI, FastAPI позволяет создавать API с минимальными усилиями.

Давайте рассмотрим основные преимущества FastAPI и как его использовать для создания бекендов на Python:

  1. Установка FastAPI

Для установки FastAPI достаточно выполнить следующую команду:
pip install fastapi

  1. Установка сервера ASGI

FastAPI требует ASGI-совместимого сервера для запуска веб-приложения. Один из самых популярных серверов – uvicorn. Вы можете установить его следующей командой:
pip install uvicorn

  1. Создание базового приложения FastAPI

Для создания базового приложения FastAPI вам необходимо создать файл Python и добавить следующий код:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}
  1. Запуск сервера

Для запуска сервера используйте следующую команду:
uvicorn app:app --reload

Эта команда запустит сервер uvicorn и загрузит ваше приложение FastAPI.

  1. Создание эндпоинтов

FastAPI позволяет определять маршруты и обработчики для них с помощью специальных декораторов. Например, для создания GET-метода, который вернет данные о пользователе, вы можете использовать следующий код:

@app.get("/users/{user_id}")
def read_user(user_id: int):
    return {"user_id": user_id}
  1. Документация API

FastAPI автоматически генерирует документацию API на основе стандарта OpenAPI. Чтобы просмотреть документацию вашего API, перейдите по ссылке http://127.0.0.1:8000/docs.

  1. Работа с базой данных

FastAPI легко интегрируется с базами данных, такими как PostgreSQL, MySQL, SQLite и др. Для работы с базой данных вам необходимо установить драйвер для вашей базы данных и настроить подключение. Вы можете использовать библиотеку SQLAlchemy для работы с различными базами данных.

  1. Аутентификация и авторизация

FastAPI предлагает встроенные инструменты для реализации аутентификации и авторизации в ваших приложениях. Вы можете использовать стандартные методы аутентификации, такие как токены доступа и refresh-токены для обеспечения безопасности вашего приложения.

В заключение, FastAPI является мощным и эффективным фреймворком для создания бекендов на Python. Он предлагает высокую производительность, удобство использования и отличную документацию API. Если вы хотите создать мощный и эффективный бекенд на Python, рекомендуется использовать FastAPI и следовать рекомендациям Дениса Аникина.

0 0 votes
Article Rating
24 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@linarusmanow7838
1 month ago

хороший и интересный доклад, хотелось бы почаще видеть работы этого человека

@triovabank
1 month ago

Крутой доклад. Спасибо

@АйдарСулейменов-с5ы
1 month ago

ВНЕДРЕНИЕ зависимостей!!!

@IT_psychopath
1 month ago

асинхронность как бы всегда была если че.. просто мало кто знает что асинк это сахар над генератором.🤣раньше просто на том же Flask писали асинхронность с помощью генираторов. оно больно, согласен, современный подход прост и понятен всем. ну и FastAPI, это не прорывной фреймворк а просто взяли чудище скарлет которого боялись все больше чем Flask, отмыли, постригли, косметикой помазали, духами пшик и все, народ уже не так сильно боится скарлета. главное не говорить им что это скарлет.🤣часто слышу тип – "в доках fastapi все слишком просто приведено, остальное надо самому додумывать искать и тд..". те кто в теме, если им не хватает доков fastapi, ищут доки скарлет и реализации, ну и тд.. на скарлет.😁для api он хорош. но не под все он подходит, гора нюансов все же за плечами висит… с Flask все ок, просто мало кто умеет его готовить и от этого инфы тоже не много.. поэтому большинство или на Django, или FastAPI (если адекваты то выбирают под задачи).😁

@justborney
1 month ago

Спасибо за доклад, я для себя многое структурировал.

@andrewbondaryuk
1 month ago

Инетересно посмотреть, как быстро получить админку… 😀

@ПётрГригорьев-т1ь
1 month ago

Блин, это стендап или что?

@Ca1vema
1 month ago

Главное не смотреть в исходники этого самого фастапи.
Ну и не все живут RESTом.

@Tosha.V
1 month ago

звук очень плохой(

@Biongar
1 month ago

Жаль только, что по итогу, фаст апи избавляет нас от кучи работы в 1 ситуациях и это всеми расхваливается, но так же накладывает на нас кучу другой работы, сделать которую по итогу гораздо труднее, чем пример про джанго

@TheTmntmike
1 month ago

FA это кал для смузихлёбов. Aiohttp – выбор профессионала

@RuchejAlex
1 month ago

мда…. тут джангу не можешь освоить, потому что не работает в IT и нет постоянной практики, а уже много вакансий требуют фастапи.

@Anjinink
1 month ago

Спасибо, вкусно! Как скоро мы придем к ситуации, что на каждый чих будет свой фреймворк?

@poperechniy
1 month ago

Интересно как реализуются CBV внутри FastAPI

@sfilkin
1 month ago

На слайдах говнокод чудовищный. Надеюсь, докладчик просто торопился. Еще он не понимает, что такое dependency inversion, к сожалению. Неприятно, что теперь такие доклады стали нормой(

@АртемИванов-й4р
1 month ago

Чувак, инверсия зависимостей и внедрение зависимостей (Depends()) это разные вещи, посмотри

@MadMike93
1 month ago

сейчас в поисках работы и обнаружил что практически везде либо уже требуется FastAPI, либо собираются на него переезжать))) вообще люто быстро штука появилась и уже в энтерпрайзе во всю работает)))

@funkindy
1 month ago

Depends это элегантный способ внедрения зависимости, а не инверсия зависимостей. Вспомни SOLID.

Доклад слабоват, в FA до ебени фени батареек, о которых ни слова. (Обработчики аутентификации, исключений, расширение сваггера, middleware). Короче очередной helloworld по фастапи.

@xfenixws
1 month ago

Некоторое дополнение: в докладе я говорю, что нельзя генерировать рандомные данные по пайдентик моделям. После доклада мне подсказали — можно! С помощью hypothesis. Очень крутая библиотека, кстати.

@stanislavsheev7748
1 month ago

Почему в FastApi нет создания роутов из структуры каталогов?