گام پنجم: تنظیمات دیتابیس و طراحی مدلها
سلام به کدنویسهای آینده! تا اینجا یاد گرفتیم چطور پروژه را بسازیم و اولین پیام را نشان دهیم. اما یک سایت واقعی نیاز دارد اطلاعات را ذخیره کند. امروز دیتابیس سایت را راه میاندازیم.
۱. تنظیمات اولیه دیتابیس (Database Setup)
فایل mysite/settings.py را باز کنید. این فایل مرکز کنترل پروژه شماست. به طور پیشفرض، جنگو از دیتابیس SQLite استفاده میکند.
یک تغییر کوچک: در همین فایل، متغیر TIME_ZONE را به منطقه زمانی خودتان (مثلاً 'Asia/Tehran') تغییر دهید.
۲. اپلیکیشنهای نصب شده (Installed Apps)
در فایل settings.py بخشی به نام INSTALLED_APPS وجود دارد. اینها ابزارهایی هستند که جنگو پیشفرض فعال کرده است. برای ساخت جدولهای این ابزارها، دستور زیر را در ترمینال اجرا کنید:
python manage.py migrate
اگر پیامهای سبزرنگ OK را دیدید، یعنی همه چیز مرتب است.
۳. ساخت مدلها (Creating Models)
ما دیتابیس را با نوشتن کلاسهای پایتون تعریف میکنیم. برای اپلیکیشن نظرسنجی، دو موجودیت نیاز داریم:
- Question (سوال): شامل متن سوال و تاریخ انتشار.
- Choice (گزینه): شامل متن گزینه و تعداد رایها.
فایل polls/models.py را باز کنید و کدهای زیر را بنویسید:
from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField("date published") class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)
گام ششم: فعالسازی مدلها
حالا باید اپلیکیشن را به پروژه معرفی کنیم و جداول دیتابیس را بسازیم.
۱. معرفی اپلیکیشن به پروژه
فایل mysite/settings.py را باز کنید و در لیست INSTALLED_APPS، آدرس اپلیکیشن polls را اضافه کنید:
INSTALLED_APPS = [
"polls.apps.PollsConfig", # این خط را اضافه کردیم
"django.contrib.admin",
"django.contrib.auth",
...
]۲. ساخت فایلهای مایگریشن
حالا باید تغییرات مدلها را بستهبندی کنیم. دستور زیر را بزنید:
python manage.py makemigrations polls
۳. اجرای نهایی و ساخت جداول
برای اعمال تغییرات روی دیتابیس، دستور نهایی را اجرا کنید:
python manage.py migrate
خلاصه طلایی: قانون ۳ مرحلهای جنگو
این سه مرحله را به خاطر بسپارید:
- تغییر مدل: در
models.py - بستهبندی:
makemigrations - اجرا:
migrate

0 دیدگاه