مدل ها (Models)
«مدل (Model)» یعنی جدول دیتابیس. مدل ها داده واقعی نگه می دارند. با مدل، بدون دست زدن به فایل ها، داده می سازیم و می خوانیم؛ مثل دفتر نمره کلاس که همیشه مرتب است.
مدل در جنگو چیست؟
مدل یک کلاس پایتون است. هر مدل تبدیل به یک جدول می شود. هر ویژگیِ کلاس، تبدیل به ستون می شود.
ساخت جدول (Create Model)
فایل members/models.py را باز کن و مدل Member را بساز.
from django.db import models
class Member(models.Model):
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
نکته: CharField یعنی متن کوتاه. با max_length سقف طول را می دهیم.
ساخت فایل مایگریشن
«مایگریشن (Migration)» مجموعه تغییرات دیتابیس است. مثل صورت جلسه رسمی تغییرات.
python manage.py makemigrations members
فایل مایگریشن در پوشه members/migrations ساخته می شود.
# Generated by Django 5.1.7 on 2025-03-20 11:39
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Member',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('firstname', models.CharField(max_length=255)),
('lastname', models.CharField(max_length=255)),
],
),
]
نکته: فیلد id خودکار ساخته می شود. شمارنده افزایشی است.
اجرای مایگریشن ها
برای اعمال تغییرات روی دیتابیس، این دستور را اجرا کن.
python manage.py migrate
دیدن SQL تولیدشده
می خواهی SQL دقیق را ببینی؟ از دستور زیر استفاده کن.
python manage.py sqlmigrate members 0001
حالا جدول Member در دیتابیس SQLite پروژه ساخته شده است.
گام های پیشنهادی بعدی
- افزودن داده با درج داده در مدل.
- نمایش داده در ویوها و قالب.
جمع بندی سریع
- مدل ها جدول دیتابیس هستند.
- هر فیلد، یک ستون می شود.
- با
makemigrationsتغییرات ثبت می شود. - با
migrateروی دیتابیس اعمال می شود. - مدل های جنگو پایه مدیریت داده اند.
برای قالب ها به قالب ها سر بزن. برای مسیردهی، آدرس ها را ببین.