Skip to content

Latest commit

 

History

History
99 lines (77 loc) · 3.9 KB

README.md

File metadata and controls

99 lines (77 loc) · 3.9 KB

UrFU-FAQ

Веб-сервис UrFU-FAQ

Как запустить проект

  1. Скачайте и разархивируйте проект.
  2. Установите все библиотеки из файла requirements.txt с помощью команды pip install -r requirements.txt.
  3. Создайте файл 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>"
            }
        }
    ]
}
  1. Запустите файл main.py с этими переменными окружения с помощью команды python main.py или нажатием на зеленую кнопку Run в Visual Studio Code.
  2. В консоли появится ссылка 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 - директория с модулями API
  • core - директория с основными компонентами приложения
  • security - директория с компонентами безопасности (например, аутентификация)
  • db - директория с моделями базы данных

Модули API

Модули 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 может содержать определение структуры базы данных и методы для работы с ней.