Основы FastAPI

Что такое FastAPI

Последнее обновление: 06.09.2022

FastAPI представляет быстрый высокопроизводительный фреймворк для создания веб-приложений на языке Python.

Официальный сайт проекта: https://fastapi.tiangolo.com/. Исходный код фреймворка доступен на github по адресу: https://github.com/tiangolo/fastapi

На данный момент поддерживается Python версии 3.6 и выше.

Необходимые инструменты и установка

Для работы с FastAPI естественно потребуется интерпретатор Python. Как его установить, можно прочитать тут: Установка и первая программа на Python

Для установки пакетов FastAPI потребует пакетный менеджер pip. Менеджер pip позволяет загружать пакеты и управлять ими. Обычно при установке python также устанавливается и менеджер pip.

Для установки пакетов FastAPI откроем терминал и введем команду

pip install fastapi
Установка FastAPI

Также для работы с FastAPI нам потребуется ASGI веб-сервер (веб сервер с поддержкой протокола Asynchronous Server Gateway Interface). В качестве такового в Python можно использовать Univer или Hypercorn. В данном случае будем использовать Univer. Также установим его пакеты с помощью менеджера pip с помощью следующей команды:

pip install "uvicorn[standard]"

Создание первого приложения

Определим на диске папку, где будут располагаться файлы с исходным кодом приложения. Например, в моем случае это папка C:\fastapi. Создадим в этой папке новый файл, который назовем main.py и который будет иметь следующий код:

from fastapi import FastAPI
from fastapi.responses import HTMLResponse

app = FastAPI()

@app.get("/")
def read_root():
    html_content = "<h2>Hello METANIT.COM!</h2>"
    return HTMLResponse(content=html_content)

Для обработки запросов к приложения вначале необходимо создать объект приложения с помощью конструктора FastAPI из пакета fastapi

app = FastAPI()

Затем определяем функцию, которая будет обрабатывать запросы. К этой функции применяется специальный декоратор в виде метода app.get():

@app.get("/")

В этот метод передается шаблон маршрута,по которому функция будет обрабатывать запросы. В данном случае это строка "/", которая означает, что функция будет обрабатывать запросы по пути "/", то есть запросы к корню веб-приложения.

После декоратора app.get идет собственно определение функции, которая обрабатывает запрос:

def read_root():
    html_content = "<h2>Hello METANIT.COM!</h2>"
    return HTMLResponse(content=html_content)

Это обычная функция python. Она называется read_root (имя произвольное). Для отправки ответа она использует класс HTMLResponse из пакета fastapi.responses. Класс HTMLResponse позволяет отправить в ответ некоторое содержимое в виде кода html.

Для установки отправляемого содержимого в конструкторе HTMLResponse применяется параметр content, которому в данном случае передается строка "<h2>Hello METANIT.COM!</h2>" со значением "Hello METANIT.COM!". То есть когда клиент обратится к веб-приложению по пути "/", ему будет отправлен html-код "<h2>Hello METANIT.COM!</h2>".

Запуск приложения

Теперь запустим приложение. Для этого перейдем в терминале к папке, где располагает файл main.py и затем выполним команду

uvicorn main:app --reload

В данном случае мы запускаем сервер uvicorn и передаем ему ряд параметров:

  • main указывает на название модуля, которое по умолчанию совпадает с названием файла - main

  • app указывает на объект приложения, созданный в строке app = FastAPI()

  • --reload позволяет отслеживать изменения в файлах исходного кода и автоматически перезапускать проект

Запуск проекта на FastAPI и Python

При запуске консоль отображает адрес, по которому запущено приложение. Обычно это адрес http://127.0.0.1:8000/. И если мы обратимся по этому адресу в браузере, то он отобразит нам отправленные сервером данные:

Первое веб-приложение на FastAPI и Python
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850