آشنایی با مدل‌های جنگو

django models introduction
20 آبان 1403

مدل‌های جنگو یکی از ابزارهای اصلی این چارچوب وب در صنعت برنامه‌نویسی سمت سرور به شمار می‌آیند که وظیفه نگهداری داده‌ها به صورت ساختارمند و قابل مدیریت را برعهده دارند. مدل‌ها رویه‌های پیچیده دیتابیس را به توابع و کلاس‌های ساده پایتون تبدیل می‌کنند و توسعه‌دهندگان را از نوشتن کدهای SQL مستقیم بی‌نیاز می‌کنند.

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

بخش جذاب دیگر این است که می‌توانید به سرعت تغییراتی را که در مدل‌ها می‌دهید به دیتابیس اعمال کنید. با استفاده از سیستم مهاجرتی (Migrations) جنگو، هر تغییری که در مدل‌های داده خود ایجاد می‌کنید به صورت خودکار به اقدامات لازم برای اصلاح دیتابیس تبدیل می‌شود.

حال که دانستیم مدل‌ها چقدر در توسعه وب اپلیکیشن با جنگو مهم هستند، بگذارید به یک مثال کد نگاهی بیندازیم:


from django.db import models

class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
publication_date = models.DateField()

def __str__(self):
return self.title

در این کد، می‌بینیم که چگونه یک مدل ساده برای مقالات ساخته می‌شود.


from django.db import models
در این خط، ما کلاس models جنگو را وارد کرده‌ایم که شامل انواع مدل‌های مورد نیاز است.

class Article(models.Model):
در این خط، کلاس مدل خود را تعریف کرده‌ایم که از models.Model ارث‌بری می‌کند، یعنی این مدل یک مدل جنگو خواهد بود.

title = models.CharField(max_length=200)
یک ویژگی title اضافه کرده‌ایم که نوع داده آن CharField با حداکثر طول ۲۰۰ کاراکتر است.

content = models.TextField()
یک ویژگی content داریم که نوع داده آن TextField است و برای ذخیره متون طولانی‌تر استفاده می‌شود.

publication_date = models.DateField()
در اینجا، یک ویژگی publication_date داریم که تاریخ انتشار مقاله را ذخیره می‌کند و نوعش DateField است.

def __str__(self):
این متد، نمایشی متنی از شیء را زمان فراخوانی print() یا str() برمی‌گرداند؛ در اینجا، عنوان مقاله بازگردانده می‌شود.

سوالات متداول

؟

چطور می‌توان در جنگو یک مدل ساده ساخت؟

؟

چگونه می‌توان تغییرات مدل را به دیتابیس اعمال کرد؟

؟

آیا نیاز است که با SQL برای کار با مدل‌ها آشنا باشم؟