Веб-сервис UrFU-FAQ
- Скачайте и разархивируйте проект.
- Установите все библиотеки из файла
requirements.txt
с помощью командыpip install -r requirements.txt
. - Создайте файл
launch.json
(если пишете в Visual Studio Code), где нужно прописать переменные окруженияMONGO_USER
,MONGO_PASSWORD
,DB
. Пример содержимого файла:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: текущий файл",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"env": {
"MONGO_USER": "<your_mongo_user>",
"MONGO_PASSWORD": "<your_mongo_password>",
"DB": "<your_db_name>"
}
}
]
}
- Запустите файл
main.py
с этими переменными окружения с помощью командыpython main.py
или нажатием на зеленую кнопку Run в Visual Studio Code. - В консоли появится ссылка http://127.0.0.1:8000, её и нужно открыть в браузере.
Структура проекта на FastAPI может выглядеть следующим образом:
project
│ main.py
│ requirements.txt
│
└───app
│ __init__.py
│
├───api
│ __init__.py
│ endpoints.py
│
├───core
│ │ __init__.py
│ │ config.py
│ │
│ └───security
│ __init__.py
│ auth.py
│
└───db
__init__.py
db.py
models.py
main.py
- файл запуска приложенияrequirements.txt
- файл зависимостей проектаapp
- директория с основным кодом приложенияapi
- директория с модулями APIcore
- директория с основными компонентами приложенияsecurity
- директория с компонентами безопасности (например, аутентификация)db
- директория с моделями базы данных
Модули API в директории api
содержат логику обработки запросов. Внутри модуля обычно находится класс Router
, который отвечает за маршрутизацию запросов. Пример:
from fastapi import APIRouter
router = APIRouter()
@router.get('/')
async def read_root():
return {'Hello': 'World'}
Конфигурация приложения может храниться в модуле core/config.py
. В ней можно определить переменные окружения, настройки базы данных и другие параметры приложения.
Компоненты безопасности могут храниться в директории core/security
. Например, модуль auth.py
может содержать функции для аутентификации пользователей.
Модели базы данных могут храниться в директории db
. Например, модуль models.py
может содержать определение структуры базы данных и методы для работы с ней.