💎 استفاده از PostgreSQL با Django 💎
امروز میخوایم درباره PostgreSQL و اینکه چرا این دیتابیس رابطهای با Django فوقالعاده مچ میشه، صحبت کنیم. همچنین چندتا از فیچرهای خاصی که جنگو برای این دیتابیس داره رو معرفی میکنیم
چرا PostgreSQL؟ 🤔
خب PostgreSQL یه دیتابیس رابطهای قدرتمنده که خیلیها بهش میگن "Postgres". این دیتابیس اوپن سورس، خیلی خوب با Django هماهنگ میشه و خیلی امکانات و قابلیتهای پیشرفتهای رو ارائه میده که وقتی با جنگو کار میکنی حسابی به درد میخوره. از جمله پشتیبانی از JSONB، قفلهای پیچیده، پارتیشنبندی دادهها و ... 😍
چطوری از PostgreSQL توی Django استفاده کنیم؟ 🛠️
1⃣ اول از همه، باید مطمئن شی که PostgreSQL رو نصب داری.
2⃣ بعدش توی پروژه جنگویی، توی فایل settings.py باید دیتابیس رو به Postgres وصل کنی. یه همچین چیزی:
فیچرهای خاص Django برای PostgreSQL 📦
1⃣ مدلهای JSONField 📄
با استفاده از Postgres توی Django، میتونی از فیلد JSONField استفاده کنی. این فیلد بهت اجازه میده که دادههای JSON رو بهراحتی توی دیتابیس ذخیره کنی و بعداً کوئریهای خفن روشون بزنی! دیگه نیازی نیست همیشه ساختار دادهت فقط رابطهای باشه.
2⃣ فیلد ArrayField 🔢
اگه یه لیست یا آرایه داری و میخوای اون رو مستقیم توی دیتابیس ذخیره کنی، ArrayField بهترین انتخابه. با این فیلد، میتونی یه لیست از مقادیر (مثلاً یه سری عدد یا استرینگ) رو توی یه ستون ذخیره کنی.
خب HStore یه قابلیت خاص توی Postgresه که بهت اجازه میده دادههای کلید-مقدار (key-value) رو توی دیتابیس ذخیره کنی. Django از این فیلد پشتیبانی میکنه و باهاش میتونی دادههایی شبیه به دیکشنری رو ذخیره کنی.
این فیلد بهت اجازه میده که رِنجها رو توی دیتابیس ذخیره کنی. مثلاً میخوای یه بازه تاریخی یا عددی رو نگهداری، این فیلد دقیقاً به درد همون کار میخوره.
خب Postgres قابلیت جستجوی متنی پیشرفته داره و Django هم از این قابلیت پشتیبانی میکنه. با استفاده از این فیچر میتونی بهصورت سریع و بهینه توی متنها جستجو کنی.
استفاده از PostgreSQL توی Django یه انتخاب خیلی خوبه، چون هم دیتابیس قویایه و هم فیچرهای اختصاصی زیادی برای جنگو داره که میتونه کارتو سریعتر و راحتتر کنه. از ذخیره JSON گرفته تا جستجوی متنی، Postgres و Django یه ترکیب طلایین
امیدوارم مفید بوده باشه :)
@ninja_learn_ir
امروز میخوایم درباره PostgreSQL و اینکه چرا این دیتابیس رابطهای با Django فوقالعاده مچ میشه، صحبت کنیم. همچنین چندتا از فیچرهای خاصی که جنگو برای این دیتابیس داره رو معرفی میکنیم
چرا PostgreSQL؟ 🤔
خب PostgreSQL یه دیتابیس رابطهای قدرتمنده که خیلیها بهش میگن "Postgres". این دیتابیس اوپن سورس، خیلی خوب با Django هماهنگ میشه و خیلی امکانات و قابلیتهای پیشرفتهای رو ارائه میده که وقتی با جنگو کار میکنی حسابی به درد میخوره. از جمله پشتیبانی از JSONB، قفلهای پیچیده، پارتیشنبندی دادهها و ... 😍
چطوری از PostgreSQL توی Django استفاده کنیم؟ 🛠️
1⃣ اول از همه، باید مطمئن شی که PostgreSQL رو نصب داری.
2⃣ بعدش توی پروژه جنگویی، توی فایل settings.py باید دیتابیس رو به Postgres وصل کنی. یه همچین چیزی:
DATABASES = {حالا میتونی از قابلیتهای خفن Postgres استفاده کنی و دیتابیس پروژهت رو به یه سطح بالاتر ببری! 🚀
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'your_db_name',
'USER': 'your_db_user',
'PASSWORD': 'your_db_password',
'HOST': 'localhost',
'PORT': '5432',
}
}
فیچرهای خاص Django برای PostgreSQL 📦
1⃣ مدلهای JSONField 📄
با استفاده از Postgres توی Django، میتونی از فیلد JSONField استفاده کنی. این فیلد بهت اجازه میده که دادههای JSON رو بهراحتی توی دیتابیس ذخیره کنی و بعداً کوئریهای خفن روشون بزنی! دیگه نیازی نیست همیشه ساختار دادهت فقط رابطهای باشه.
from django.db import models
class MyModel(models.Model):
data = models.JSONField()
2⃣ فیلد ArrayField 🔢
اگه یه لیست یا آرایه داری و میخوای اون رو مستقیم توی دیتابیس ذخیره کنی، ArrayField بهترین انتخابه. با این فیلد، میتونی یه لیست از مقادیر (مثلاً یه سری عدد یا استرینگ) رو توی یه ستون ذخیره کنی.
from django.contrib.postgres.fields import ArrayField3⃣ فیلد HStore 🗂️
from django.db import models
class MyModel(models.Model):
tags = ArrayField(models.CharField(max_length=100), blank=True)
خب HStore یه قابلیت خاص توی Postgresه که بهت اجازه میده دادههای کلید-مقدار (key-value) رو توی دیتابیس ذخیره کنی. Django از این فیلد پشتیبانی میکنه و باهاش میتونی دادههایی شبیه به دیکشنری رو ذخیره کنی.
from django.contrib.postgres.fields import HStoreField4⃣ فیلد Range 📏
from django.db import models
class MyModel(models.Model):
attributes = HStoreField()
این فیلد بهت اجازه میده که رِنجها رو توی دیتابیس ذخیره کنی. مثلاً میخوای یه بازه تاریخی یا عددی رو نگهداری، این فیلد دقیقاً به درد همون کار میخوره.
from django.contrib.postgres.fields import DateRangeField5⃣ و در اخر Full-Text Search 🔍
from django.db import models
class MyModel(models.Model):
date_range = DateRangeField()
خب Postgres قابلیت جستجوی متنی پیشرفته داره و Django هم از این قابلیت پشتیبانی میکنه. با استفاده از این فیچر میتونی بهصورت سریع و بهینه توی متنها جستجو کنی.
from django.contrib.postgres.search import SearchVectorجمعبندی 🎯
from .models import MyModel
MyModel.objects.annotate(search=SearchVector('title', 'description')).filter(search='keyword')
استفاده از PostgreSQL توی Django یه انتخاب خیلی خوبه، چون هم دیتابیس قویایه و هم فیچرهای اختصاصی زیادی برای جنگو داره که میتونه کارتو سریعتر و راحتتر کنه. از ذخیره JSON گرفته تا جستجوی متنی، Postgres و Django یه ترکیب طلایین
#django #postgressql #postgres
🔥12❤5