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 нам потребуется 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
позволяет отслеживать изменения в файлах исходного кода и автоматически перезапускать проект
При запуске консоль отображает адрес, по которому запущено приложение. Обычно это адрес http://127.0.0.1:8000/. И если мы обратимся по этому адресу в браузере, то он отобразит нам отправленные сервером данные: