Ласкаво просимо на нашу "експедицію" в світ MongoDB і FastAPI! Сьогодні ми навчимося встановлювати MongoDB, підключати її до FastAPI і готувати оточення для розробки. Готуйтесь до захопливої подорожі!
MongoDB — це база даних, яка дозволяє гнучко зберігати дані: вона швидко працює, легко масштабується і чудово підходить для проєктів з мінливими вимогами. А FastAPI — це сучасний веб-фреймворк, який підтримує асинхронний ввід/вивід і дозволяє писати швидкі та надійні API. Разом вони дають потужну зв'язку для розробки сучасних додатків.
Встановлення MongoDB
Почнемо з встановлення MongoDB. Є три основні способи її розгорнути: локально, через Docker і в хмарі. Розглянемо кожен із них.
Локальна установка MongoDB
Якщо хочете встановити MongoDB прямо на свій комп'ютер, виконайте такі кроки:
- Завантажте дистрибутив з офіційного сайту MongoDB під вашу ОС.
- Встановіть:
- Windows/macOS: просто запустіть інсталятор і слідуйте інструкціям. Рекомендується ввімкнути опцію "Install MongoDB as a Service".
- Linux (Ubuntu):
sudo apt update sudo apt install -y mongodb
- Запустіть сервер:
mongod - Перевірте роботу клієнта:
mongo
Якщо бачите командний рядок MongoDB — все працює. Вітаю!
Встановлення через Docker
Якщо віддаєте перевагу контейнерам, Docker чудово підходить:
- Завантажте образ:
docker pull mongo - Запустіть контейнер:
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.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ