
اتصال دیتابیس پستگرس به جنگو
چرا 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 یک فرآیند ساده اما بسیار مهم در توسعه وباپلیکیشنهای حرفهای و حتی ساده تر است. با اجرای مراحل زیر میتوانید پروژه خود را آماده کنید:
نصب PostgreSQL و ایجاد دیتابیس
نصب کتابخانه psycopg2
تنظیم فایل settings.py
اعمال مایگریشنها
تست اتصال و ورود به پنل ادمین
پس از این مرحله، شما یک دیتابیس قدرتمند دارید که میتوانید درخواست های بسیار زیاد را مدیریت کنید و همچنین از کوئری های پیچیده Django ORM بهرهمند شوید.