Ninja Learn | نینجا لرن
1.26K subscribers
96 photos
36 videos
11 files
307 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.me/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.me/+td1EcO_YfSphNTlk
Download Telegram
💎 استفاده از PostgreSQL با Django 💎

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

چرا PostgreSQL؟ 🤔
خب PostgreSQL یه دیتابیس رابطه‌ای قدرتمنده که خیلی‌ها بهش میگن "Postgres". این دیتابیس اوپن سورس، خیلی خوب با Django هماهنگ میشه و خیلی امکانات و قابلیت‌های پیشرفته‌ای رو ارائه میده که وقتی با جنگو کار می‌کنی حسابی به درد می‌خوره. از جمله پشتیبانی از JSONB، قفل‌های پیچیده، پارتیشن‌بندی داده‌ها و ... 😍

چطوری از PostgreSQL توی Django استفاده کنیم؟ 🛠️

1⃣ اول از همه، باید مطمئن شی که PostgreSQL رو نصب داری.

2⃣ بعدش توی پروژه جنگویی، توی فایل settings.py باید دیتابیس رو به Postgres وصل کنی. یه همچین چیزی:
  
  
   DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.postgresql',
           'NAME': 'your_db_name',
           'USER': 'your_db_user',
           'PASSWORD': 'your_db_password',
           'HOST': 'localhost',
           'PORT': '5432',
       }
   }
  
حالا می‌تونی از قابلیت‌های خفن Postgres استفاده کنی و دیتابیس پروژه‌ت رو به یه سطح بالاتر ببری! 🚀

فیچرهای خاص 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 ArrayField
   from django.db import models

   class MyModel(models.Model):
       tags = ArrayField(models.CharField(max_length=100), blank=True)
3⃣ فیلد HStore 🗂️ 
خب HStore یه قابلیت خاص توی Postgresه که بهت اجازه میده داده‌های کلید-مقدار (key-value) رو توی دیتابیس ذخیره کنی. Django از این فیلد پشتیبانی می‌کنه و باهاش می‌تونی داده‌هایی شبیه به دیکشنری رو ذخیره کنی.

 
   from django.contrib.postgres.fields import HStoreField
   from django.db import models

   class MyModel(models.Model):
       attributes = HStoreField()
  
4⃣ فیلد Range 📏 
   این فیلد بهت اجازه میده که رِنج‌ها رو توی دیتابیس ذخیره کنی. مثلاً می‌خوای یه بازه تاریخی یا عددی رو نگه‌داری، این فیلد دقیقاً به درد همون کار می‌خوره.

  
   from django.contrib.postgres.fields import DateRangeField
   from django.db import models

   class MyModel(models.Model):
       date_range = DateRangeField()
  
5⃣ و در اخر Full-Text Search 🔍 
خب 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


@ninja_learn_ir
🔥125