Атрибут directory
Атрибут directory хранит путь к директории,
из которой класс StaticFiles читает файлы
для отдачи клиенту. Значение передаётся
при создании экземпляра StaticFiles
в одноимённом параметре и сохраняется в объекте.
Атрибут используется внутри метода get_response
для поиска запрошенного файла на диске.
Синтаксис
StaticFiles(directory=path)
После создания экземпляра значение доступно
через атрибут directory:
static_files.directory
Пример
Давайте создадим экземпляр StaticFiles
с директорией 'static' и выведем значение атрибута:
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
static_files = StaticFiles(directory='static')
print(static_files.directory)
Результат выполнения кода:
"static"
Пример
Давайте подключим статику через app.mount
и проверим, что атрибут directory
действительно указывает на нужную папку:
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
static_files = StaticFiles(directory='static')
app.mount('/static', static_files, name='static')
print(static_files.directory)
Результат выполнения кода:
"static"
Пример
Давайте запросим файл 'style.css'
из директории 'static'
по адресу /static/style.css:
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
static_files = StaticFiles(directory='static')
app.mount('/static', static_files, name='static')
Структура проекта:
project/
├── main.py
└── static/
└── style.css
Результат выполнения запроса к /static/style.css:
body { color: black; }
Смотрите также
-
класс
StaticFiles,
который отдаёт статические файлы через HTTP -
метод
call,
который обрабатывает ASGI-запрос к статике -
атрибут
check_dir,
который проверяет существование директории -
атрибут
html,
который включает режим HTML-ответа