JavaRush /Курсы /Модуль 4: FastAPI /Установка и настройка MongoDB для работы с FastAPI

Установка и настройка MongoDB для работы с FastAPI

Модуль 4: FastAPI
8 уровень , 2 лекция
Открыта

Добро пожаловать на нашу "экспедицию" в мир MongoDB и FastAPI! Сегодня мы научимся устанавливать MongoDB, подключать её к FastAPI и готовить окружение для разработки. Готовьтесь к захватывающему путешествию!

MongoDB — это база данных, которая позволяет гибко хранить данные: она быстро работает, легко масштабируется и отлично подходит для проектов с изменяющимися требованиями. А FastAPI — это современный веб-фреймворк, который поддерживает асинхронный ввод-вывод и позволяет писать быстрые и надёжные API. Вместе они создают мощную связку для разработки современных приложений.


Установка MongoDB

Начнем с установки MongoDB. Есть три основных способа её развернуть: локально, через Docker и в облаке. Рассмотрим каждый из них.

Локальная установка MongoDB

Если вы хотите установить MongoDB прямо на свою машину, выполните следующие шаги:

  1. Скачайте дистрибутив с официального сайта MongoDB под вашу ОС.
  2. Установите:
    • Windows/macOS: просто запустите установщик и следуйте инструкциям. Рекомендуется включить опцию "Install MongoDB as a Service".
    • Linux (Ubuntu):
      sudo apt update
      sudo apt install -y mongodb
      
  3. Запустите сервер:
    mongod
    
  4. Проверьте работу клиента:
    mongo
    

Если видите командную строку MongoDB — всё работает. Поздравляем!

Установка через Docker

Если вы предпочитаете использовать контейнеры, Docker отлично подойдёт:

  1. Скачайте образ:
    docker pull mongo
    
  2. Запустите контейнер:
    docker run --name mongodb -d -p 27017:27017 mongo
    

MongoDB будет доступна по адресу localhost:27017.


Облачный вариант: MongoDB Atlas

Если вы не хотите возиться с установкой, есть третий вариант — облачный сервис MongoDB Atlas.

Вы просто создаёте аккаунт на mongodb.com/cloud/atlas, разворачиваете кластер через удобный интерфейс — и можно сразу подключаться к базе данных из любого приложения.

Этот способ особенно удобен, если вы работаете в команде, хотите удалённый доступ или не желаете тратить время на локальную настройку.


Настройка подключения MongoDB

Теперь проверим, что наша MongoDB готова к работе.

Для проверки работоспособности базы данных можно использовать mongo shell (поставляется вместе с MongoDB). Открываем терминал и вводим:

mongo

Вот пример команды для создания новой базы данных:

use my_new_database

Создадим коллекцию и добавим в неё документ:

db.my_collection.insertOne({name: "FastAPI User", age: 29})

И проверим, что данные добавлены:

db.my_collection.find()

Если всё работает, MongoDB готова к работе с FastAPI.


Подключение FastAPI к MongoDB

Теперь мы подключим FastAPI к MongoDB. Для этого воспользуемся библиотекой motor, которая поддерживает асинхронную работу с MongoDB.

Устанавливаем библиотеку:

pip install motor

Motor — это асинхронный клиент для MongoDB, построенный поверх библиотеки pymongo. С его помощью мы сможем выполнять все операции с MongoDB в асинхронном режиме.

Настройка подключения

Начнем с подключения FastAPI к базе данных MongoDB.

Создадим модуль для подключения, например, db.py:


from motor.motor_asyncio import AsyncIOMotorClient

# Подключаемся к MongoDB
client = AsyncIOMotorClient("mongodb://localhost:27017")
database = client["my_database"]
collection = database["my_collection"]

Здесь:

  • AsyncIOMotorClient — объект подключения.
  • database — база данных, с которой мы работаем.
  • collection — конкретная коллекция в базе данных.

Простая проверка подключения

Создадим файл main.py:


from fastapi import FastAPI
from db import collection

app = FastAPI()

@app.get("/")
async def read_root():
    data = await collection.find_one({"name": "FastAPI User"})
    return data

Запустим приложение:

uvicorn main:app --reload

Перейдите в браузер по адресу http://127.0.0.1:8000/, и если всё настроено правильно, вы увидите документ из базы данных.


Использование альтернативных библиотек

Если вы не хотите использовать motor, есть другие варианты, например:

  • pymongo: синхронная библиотека для работы с MongoDB.
  • mongomock: библиотека для создания моков MongoDB в тестах.

Однако для асинхронного FastAPI motor является лучшим выбором.


Частые ошибки и их решение

  • Ошибка подключения (Server Selection Timeout Error): убедитесь, что сервер MongoDB запущен и слушает порт 27017. Проверьте конфигурацию подключения.
  • Версия Python: убедитесь, что вы используете Python 3.10+ (FastAPI и Motor требуют современных версий).
  • Типичные тайм-ауты с Docker: если вы на Windows / macOS, проверьте настройки сети Docker.

Что ж, мы сделали первый шаг к разработке Настройка подключения приложений на базе MongoDB. В следующей лекции мы начнем исследовать основные CRUD-операции с MongoDB.

1
Задача
Модуль 4: FastAPI, 8 уровень, 2 лекция
Недоступна
Подключение MongoDB через Docker
Подключение MongoDB через Docker
1
Задача
Модуль 4: FastAPI, 8 уровень, 2 лекция
Недоступна
Интеграция MongoDB с FastAPI
Интеграция MongoDB с FastAPI
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ