در روزهای ابتدایی توسعه وب، فریم ورکهای انتخابی بیشتر LAMP یا لینوکس+ آپاچی+MySQL+PHP بوده. در حالی که PHP هنوز هم انتخاب خوبی برای کد نویسی هست، پایتون محبوبیت بسیار زیادی پیدا کرده. با سینتکس تمیز و ساده و قابلیت استفاده در صنایع مختلف، پایتون یک انتخاب مطمئن برای کدنویسها تبدیل شده. تو این مقاله نحوه برقراری ارتباط بین یک دیتابیس PostgreSQL با جنگو یکی از محبوبترین فریمورکهای پایتون رو بررسی میکنیم.
برقراری ارتباط بین Postgres و فریمورک جنگو
مواد لازم
- PostgreSQL (دیتابیس)
- pgAdmin (رابط گرافیکی دیتابیس)
- پایتون 3++
- ویندوز (سیستمعامل) – تو این مقاله OS ما ویندوزه
خب بعد اینکه پروژتون رو ستاپ کردید و کارهای اولیه ساختش رو به اتمام رسوندید (تو این مقاله قرار نیست نحوه ساخت پروژه جدید جنگو بهتون آموزش داده بشه!) به pgAdmin برید و دیتابیس رو با اسم دلخواهتون (معمولا هم اسم پروژه جنگو) ایجاد کنید.
نحوه ساخت دیتابیس جدید در pgAdminبعد از ساخت دیتابیس با یک تکست ادیتور فایل settings.py پروژه جنگوتون رو باز کنید و دنبال کد زیر بگردید:
. . .
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
. . .
اگر شما از SQLite استفاده میکنید بهتره بدونید که نیازی به هیچ ابزار یا نرمافزار ثانویه ندارید و مستقیم بعد از migrate کردن دیتابیس به جنگو کانکت میشه. به این خاطر که SQLite دادهها رو توی یک فایل واحد ذخیره میکنه و به سروری احتیاج نداره!
البته در اینجا به دنبال همچین چیزی نیستیم. ما PostgreSQL رو میخوایم که “توصیه شدهترین دیتابیس برای جنگوئه” پس کد زیر رو جایگزین کد بالا کنید:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbtest',
'USER': 'postgres',
'PASSWORD': '1234',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
- NAME => همون اسمی که برای دیتابیستون انتخاب کردید.
- USER => یوزرنیم دیتابیستون (پیشفرض postgres)
- PASSWORD => پسورد دیتابیس (معمولا در هنگام نصب pgAdmin ازتون خواسته میشه)
- HOST => هاست دیتابیستون (در حالت توسعه از localhost یا آیپی 127.0.0.1 استفاده میشه)
- POST => پورتی که برای اجرای دیتابیس استفاده میشه (پیشفرض 5432)
خب فایل رو سیو میکنیم. حالا اگه عملیات migrate رو انجام بدید قاعدتا با یه ارور مواجه میشید که میگه ماژولی با اسم psycopg2 پیدا نشد. برای حلش قبل از migrate کردن این ماژول را روی سیستم نصب میکنیم.
و سپس عملیات migrate رو انجام میدیم و همونطور که شاهد خواهید بود بدون مشکل دادهها به دیتابیس PostgreSQLمون منتقل میشه.
جداول پروژه در دیتابیس migrate شدند.خب به این ترتیب پروژه جنگوی ما از دیتابیس قدرتمند PostgreSQL استفاده میکنه. همونطور که در مقاله هم اشاره شد این دیتابیس توصیهشدهترین دیتابیس جنگوئه و بهتره پروژمون قبل از استارت با این دیتابیس کانکت بشه تا در ادامه درسری نداشته باشیم. موفق باشید.