اتصال جنگو به دیتابیسهای غیرپیشفرض (PostgreSQL و MongoDB): راهنمای ساده برای مبتدیان

۱. مقدمه: چرا سراغ دیتابیسهای غیرپیشفرض برویم؟
جنگو بهصورت پیشفرض از دیتابیس SQLite استفاده میکند، که فوقالعاده ساده است ولی برای پروژههای بزرگ یا پروژههایی که نیاز به امکانات حرفهای، کارایی بالا یا امنیت بیشتری دارند کافی نیست.
دیتابیسهایی مثل PostgreSQL (رابطهای و قوی) و MongoDB (غیرارتباطی، پرسرعت و منعطف) انتخابهای خیلی خوبی برای این شرایط هستند.
در این مقاله، اتصال Django به هر دوی این پایگاه دادهها را با مثال ساده یاد میگیریم.
۲. اتصال جنگو به PostgreSQL
گام اول: نصب PostgreSQL و افزونه psycopg2
الف. نصب PostgreSQL
اگر روی ویندوز هستی از این لینک دانلود کن.
در لینوکس و مک هم به سادگی میتوانی نصبش کنی:
sudo apt update
sudo apt install postgresql postgresql-contrib
ب. نصب کتابخانه psycopg2
این کتابخانه، رابط بین پایتون و PostgreSQL است.
pip install psycopg2-binary
گام دوم: ساخت یک دیتابیس و کاربر
در ترمینال بنویس:
sudo -u postgres psql
سپس برای ساخت دیتابیس:
CREATE DATABASE mydb;
CREATE USER myuser WITH PASSWORD 'mypassword';
ALTER ROLE myuser SET client_encoding TO 'utf8';
ALTER ROLE myuser SET default_transaction_isolation TO 'read committed';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
\q
گام سوم: تنظیم فایل settings.py پروژه
در پروژه Django، فایل settings.py را پیدا کن و بخش DATABASES را به شکل زیر تغییر بده:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
گام چهارم: مهاجرت اولیه دیتابیس و تست اتصال
حالا دستور زیر را اجرا کن:
python manage.py migrate
اگر بدون خطا اجرا شد، یعنی ارتباط با PostgreSQL برقرار است!
۳. اتصال جنگو به MongoDB
جنگو به طور پیشفرض از MongoDB پشتیبانی نمیکند؛ اما میتوان با ابزارهای جانبی این کار را انجام داد. دو راه محبوب:
- Djongo (سازگار با ORM جنگو)
- MongoEngine (دارای مدل جداگانه)
در این آموزش از Djongo استفاده میکنیم که کار با آن شبیه دیتابیسهای رابطهای است.
گام اول: نصب MongoDB و Djongo
الف. نصب MongoDB
لینک نصب برای همه سیستمعاملها
در لینوکس:
sudo apt update
sudo apt install mongodb
ب. نصب کتابخانه djongo
pip install djongo
گام دوم: ایجاد دیتابیس در MongoDB
در ترمینال:
mongo
در محیط mongo میتوانی بنویسی:
use mymdb
(لازم نیست کاربر جدید بسازی، MongoDB منعطف است.)
گام سوم: تنظیم فایل settings.py برای MongoDB
برو به settings.py و قسمت DATABASES را تغییر بده:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'mymdb',
}
}
اگر رمز یا سرور خاص داری:
'ENFORCE_SCHEMA': False,
'CLIENT': {
'host': 'mongodb://localhost:27017',
# 'username': 'youruser',
# 'password': 'yourpass',
}
گام چهارم: تست اتصال
حالا دستور migrate را اجرا کن:
python manage.py migrate
اگر بدون خطا پیش رفت، اتصال برقرار است.
نکته: تمامی مدلهای معمولی Django با Djongo پشتیبانی میشوند، اما بعضی قابلیتها مثل برخی فیلدها یا کوئریهای پیشرفته ممکن است متفاوت عمل کنند.
۴. جمعبندی و منابع بیشتر
حالا میتونی پروژه جنگو را با دیتابیس قدرتمند PostgreSQL یا MongoDB اجرا کنی! برای پروژههای مقیاس بالا، کار تیمی و نیازهای خاص، انتخاب یکی از این دیتابیسها ارزشمند است.