Веб-сервис НОЦ
- Скачайте и разархивируйте проект.
- Установите все библиотеки из файла
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
│
├───templates
│ index.html
│
├───static
│ ├───css
│ │
│ ├───img
│ │
│ └───src
│
└───db
__init__.py
db.py
models.py
main.py- файл запуска приложенияrequirements.txt- файл зависимостей проектаapp- директория с основным кодом приложенияapi- директория с модулями APIcore- директория с основными компонентами приложенияsecurity- директория с компонентами безопасности (например, аутентификация)static- директория статических данныхtemplates- директория с шаблонами сайта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 может содержать определение структуры базы данных и методы для работы с ней.
Файлы шаблонов лежат в директории templates. Главный файл - index.html
Изображения, файлы JS и стили лежат в папке static