Параметр app
Параметр app передаётся в командах запуска и указывает,
какое ASGI-приложение должен обслуживать сервер.
Значением служит строка вида 'module:attribute',
где module - имя Python-файла без расширения,
а attribute - переменная с экземпляром FastAPI внутри него.
Параметр применяется в командах fastapi dev,
fastapi run и uvicorn.
Синтаксис
fastapi dev main:app
uvicorn main:app
Пример
Давайте создадим приложение в файле main.py:
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
def index():
return {'text': 'hello'}
Теперь запустим сервер, указав параметр app:
fastapi dev main:app
Результат выполнения запроса на адрес /:
{"text": "hello"}
Пример
Давайте вынесем приложение в отдельный модуль application.py:
from fastapi import FastAPI
app = FastAPI()
@app.get('/user')
def user():
return {'name': 'abcde'}
Теперь запустим сервер с другим именем модуля:
uvicorn application:app --reload
Результат выполнения запроса на адрес /user:
{"name": "abcde"}
Пример
Давайте используем другое имя переменной приложения в файле main.py:
from fastapi import FastAPI
my_app = FastAPI()
@my_app.get('/')
def index():
return {'text': 'hello'}
Теперь укажем это имя в параметре app:
fastapi run main:my_app
Результат выполнения запроса на адрес /:
{"text": "hello"}
Смотрите также
-
команда
fastapi dev,
которая запускает сервер в режиме разработки -
команда
fastapi run,
которая запускает сервер в продакшене -
команда
uvicorn,
которая запускает ASGI-приложение напрямую -
параметр
reload,
который перезапускает сервер при изменении кода