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