Класс StaticFiles
Класс StaticFiles применяется для раздачи статических
файлов: CSS, JavaScript, изображений и других ресурсов.
Первым параметром передаётся путь к директории с файлами.
Экземпляр класса монтируется к приложению через метод mount.
Синтаксис
from fastapi.staticfiles import StaticFiles
app.mount(path, StaticFiles(directory), name)
Пример
Давайте смонтируем директорию 'static' по адресу '/static':
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/static', StaticFiles(directory='static'), name='static')
@app.get('/')
def index():
return {'text': 'hello'}
Теперь файл static/article.css доступен по адресу
/static/article.css. Для запуска приложения выполним команду:
uvicorn main:app --reload
Пример
Давайте используем статический файл внутри HTML-страницы, которую возвращает обработчик:
<+python+>
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/static', StaticFiles(directory='static'), name='static')
@app.get('/', response_class=HTMLResponse)
def index():
return ''
<-python+>
Результат выполнения кода для адреса '/':
<link rel="stylesheet" href="/static/article.css">
Смотрите также
-
класс
StaticFiles,
который монтирует статические файлы к приложению -
метод
call,
который обрабатывает запрос к статическому файлу -
атрибут
directory,
который хранит путь к директории со статикой -
атрибут
html,
который включает режим раздачи HTML-файлов