وقتی صحبت از طراحی و توسعه وب‌اپلیکیشن‌های مقیاس‌پذیر و حرفه‌ای به میان می‌آید، ترکیب Django به‌عنوان فریم‌ورک پایتونی و PostgreSQL به‌عنوان دیتابیس رابطه‌ای یکی از بهترین انتخاب‌ها محسوب می‌شود. در این مقاله به‌صورت کامل و گام‌به‌گام یاد می‌گیریم که چگونه پایگاه داده پستگرس را به پروژه جنگو متصل کنیم، چه تنظیماتی نیاز داریم و چه نکاتی باعث بهینه‌تر شدن عملکرد اپلیکیشن خواهند شد.

چرا PostgreSQL را برای جنگو انتخاب کنیم؟

جنگو به‌طور پیش‌فرض با دیتابیس SQLite راه‌اندازی می‌شود. اما وقتی پروژه بزرگ‌تر می‌شود و نیاز به مدیریت هم‌زمان تعداد زیادی کاربر و داده‌های پیچیده و کوئری های پیچیده تر داریم، انتخاب یک دیتابیس قدرتمند ضروری است. در اینجا PostgreSQL مزایای قابل‌توجهی ارائه می‌دهد:

  • مقیاس‌پذیری بالا: برای پروژه‌های کوچک و بزرگ مناسب است.

  • پشتیبانی از داده‌های پیچیده مثل JSON، آرایه‌ها و GIS.

  • امنیت بالا و قابلیت‌های پیشرفته در مدیریت دسترسی کاربران.

  • هماهنگی عالی با جنگو به دلیل وجود پکیج رسمی psycopg2.

  • پشتیبانی از تراکنش‌ها برای اطمینان از صحت داده‌ها.

پیش‌نیازها برای اتصال جنگو به PostgreSQL

قبل از هر چیز، باید ابزارها و نرم‌افزارهای زیر را نصب کرده باشید:

  • پایتون 3 (نسخه سازگار با جنگو)

  • Django (آخرین نسخه یا همان نسخه موردنیاز پروژه)

  • PostgreSQL (نصب روی سیستم‌عامل یا سرور)

  • کتابخانه psycopg2 یا نسخه سبک‌تر آن psycopg2-binary برای ارتباط بین جنگو و پستگرس

مرحله اول: نصب PostgreSQL

روی سیستم‌های لینوکس (مانند Ubuntu) می‌توانید با دستور زیر نصب کنید:

sudo apt update
sudo apt install postgresql postgresql-contrib

روی ویندوز و مک نیز می‌توانید از وب‌سایت رسمی PostgreSQL

sudo -u postgres psql
CREATE DATABASE projectdb;
CREATE USER projectuser WITH PASSWORD 'password';
ALTER ROLE projectuser SET client_encoding TO 'utf8';
ALTER ROLE projectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE projectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE projectdb TO projectuser;
\q

مرحله دوم: نصب کتابخانه psycopg2

برای اینکه جنگو بتواند به دیتابیس PostgreSQL متصل شود باید کتابخانه psycopg2 نصب شود:

pip install psycopg2-binary

مرحله سوم: تنظیمات جنگو برای اتصال به PostgreSQL

وارد فایل settings.py پروژه جنگو شوید و بخش DATABASES را به شکل زیر تغییر دهید:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'projectdb',
        'USER': 'projectuser',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

توضیح فیلدها:

  • ENGINE: مشخص می‌کند که از PostgreSQL استفاده می‌کنیم.

  • NAME: نام دیتابیس ساخته‌شده.

  • USER: نام کاربری دیتابیس.

  • PASSWORD: رمز عبور کاربر دیتابیس.

  • HOST: آدرس سرور دیتابیس (اگر روی همان سیستم است localhost).

  • PORT: پورت پیش‌فرض PostgreSQL برابر با 5432 است.

مرحله چهارم: اعمال مایگریشن‌ها

اکنون باید تغییرات اولیه دیتابیس جنگو را روی پستگرس اعمال کنیم:

python manage.py migrate

مرحله پنجم: تست اتصال

برای اطمینان از صحت اتصال، می‌توانید یک سوپر‌یوزر بسازید:

python manage.py createsuperuser

پس از ساخت ادمین با دستور زیر سرور لوکال را اجرا کنید:

python manage.py runserver

جمع‌بندی

اتصال جنگو به PostgreSQL یک فرآیند ساده اما بسیار مهم در توسعه وب‌اپلیکیشن‌های حرفه‌ای و حتی ساده تر است. با اجرای مراحل زیر می‌توانید پروژه خود را آماده کنید:

  1. نصب PostgreSQL و ایجاد دیتابیس

  2. نصب کتابخانه psycopg2

  3. تنظیم فایل settings.py

  4. اعمال مایگریشن‌ها

  5. تست اتصال و ورود به پنل ادمین

پس از این مرحله، شما یک دیتابیس قدرتمند دارید که میتوانید درخواست های بسیار زیاد را مدیریت کنید و همچنین از کوئری های پیچیده Django ORM بهره‌مند شوید.