مدلهای جنگو یکی از ابزارهای اصلی این چارچوب وب در صنعت برنامهنویسی سمت سرور به شمار میآیند که وظیفه نگهداری دادهها به صورت ساختارمند و قابل مدیریت را برعهده دارند. مدلها رویههای پیچیده دیتابیس را به توابع و کلاسهای ساده پایتون تبدیل میکنند و توسعهدهندگان را از نوشتن کدهای 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()
برمیگرداند؛ در اینجا، عنوان مقاله بازگردانده میشود.