11- ساخت اولین اپلیکیشن در جنگو(2) (صفحه ادمین):
۰۷ تیر ۱۴۰۴

0 دیدگاه
آموزش Django – نوشتن اولین اپلیکیشن، قسمت دوم
در این بخش از آموزش Django، ما ادامهی قسمت اول را دنبال میکنیم و به تنظیم پایگاه داده، تعریف مدلها و معرفی پنل مدیریت خودکار Django میپردازیم.
راهنمای شروع: دریافت کمک در صورت نیاز
اگر هنگام دنبال کردن این آموزش با مشکل مواجه شدید، حتما به بخش «Getting Help» در مستندات Django مراجعه کنید تا پاسخ سوالات خود را بیابید.
تنظیم پایگاه داده (Database setup)
فایل mysite/settings.py
شامل تنظیمات اصلی پروژه Django است که به صورت متغیرهای سطح ماژول پایتون تعریف شدهاند.
به صورت پیشفرض، Django از پایگاه داده SQLite استفاده میکند که برای شروع سریع و آسان مناسب است و نیازی به نصب جداگانه ندارد.
اگر پروژهی شما بزرگتر باشد، بهتر است از پایگاه دادههای قویتری مثل PostgreSQL استفاده کنید.
اگر قصد استفاده از پایگاه دادهای غیر از SQLite را دارید، باید تنظیمات مربوطه را در
settings.py
انجام دهید.در همین فایل، مقدار
TIME_ZONE
را به منطقه زمانی خود تنظیم کنید.
برنامههای فعال در پروژه (INSTALLED_APPS)
در فایل settings.py
لیستی به نام INSTALLED_APPS
وجود دارد که برنامههای (app) فعال پروژه را مشخص میکند. به صورت پیشفرض، برنامههای زیر فعال هستند:
django.contrib.admin
: پنل مدیریتdjango.contrib.auth
: سیستم احراز هویتdjango.contrib.contenttypes
: چارچوب برای نوع محتواdjango.contrib.sessions
: چارچوب جلسههاdjango.contrib.messages
: چارچوب پیامهاdjango.contrib.staticfiles
: مدیریت فایلهای استاتیک
برای ایجاد جداول پایگاه داده مرتبط با این برنامهها، دستور زیر را اجرا کنید:
python manage.py migrate
این دستور جداول لازم را در پایگاه داده ایجاد میکند.
ایجاد مدلها (Models)
مفهوم مدلها در Django
مدلها در Django نمایانگر ساختار دادههای شما هستند. هدف این است که یک بار مدلها را تعریف کنید و Django بر اساس آنها بقیه اجزا را تولید کند.
تعریف مدلها در اپلیکیشن Polls
ما دو مدل اصلی ایجاد میکنیم:
Question: شامل متن سوال و تاریخ انتشار
Choice: شامل متن انتخاب و تعداد رایها، و مرتبط به یک سوال (Question)
مثال کد مدلها در فایل 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)
هر فیلد مدل با نوع داده مشخص میشود (مثل
CharField
برای متن وDateTimeField
برای تاریخ).ارتباط بین مدلها با استفاده از
ForeignKey
تعریف میشود (یک به چند).
فعال کردن مدلها در پروژه
برای اینکه Django مدلهای ما را بشناسد و استفاده کند، باید اپلیکیشن polls
را به INSTALLED_APPS
اضافه کنیم:
INSTALLED_APPS = [
'polls.apps.PollsConfig',
# سایر اپلیکیشنها
]
سپس برای ثبت تغییرات مدلها، دستورات زیر را اجرا کنید:
python manage.py makemigrations polls
python manage.py migrate
دستور
makemigrations
فایلهای مهاجرت (migrations) ایجاد میکند که تغییرات مدلها را ذخیره میکند.دستور
migrate
تغییرات را روی پایگاه داده اعمال میکند.
بررسی دستورات مفید مهاجرت و SQL
میتوانید با دستور زیر SQL مربوط به مهاجرتها را ببینید:
python manage.py sqlmigrate polls 0001
این کار برای بررسی دقیق تغییرات پایگاه داده مفید است.
کار با API مدلها در محیط تعاملی (shell)
برای تست و کار با دادهها، از محیط تعاملی Django استفاده کنید:
bash
python manage.py shell
مثالهایی از دستورات پرکاربرد:
from django.utils import timezone
q = Question(question_text="What's new?", pub_date=timezone.now())
q.save()
print(q.id)
print(q.question_text)
# ویرایش
q.question_text = "What's up?"
q.save()
# اضافه کردن گزینهها (Choices)
q.choice_set.create(choice_text="Not much", votes=0)
q.choice_set.create(choice_text="The sky", votes=0)
بهبود نمایش مدلها
برای اینکه نمایش مدلها در محیط تعاملی و پنل مدیریت به شکل خواناتر باشد، متد __str__
را به مدلها اضافه کنید:
class Question(models.Model):
# ...
def __str__(self):
return self.question_text
class Choice(models.Model):
# ...
def __str__(self):
return self.choice_text
معرفی پنل مدیریت Django (Admin)
پنل مدیریت Django به شما اجازه میدهد به سادگی دادهها را اضافه، ویرایش یا حذف کنید.
ایجاد کاربر مدیر (Superuser)
برای دسترسی به پنل مدیریت، ابتدا باید یک کاربر مدیر بسازید:
python manage.py createsuperuser
نام کاربری، ایمیل و رمز عبور خود را وارد کنید.
اجرای سرور توسعه
برای دسترسی به پنل مدیریت، سرور را اجرا کنید:
python manage.py runserver
و سپس در مرورگر به آدرس http://127.0.0.1:8000/admin/
بروید و با اطلاعات کاربر مدیر وارد شوید.
ثبت مدل در پنل مدیریت
برای اینکه مدلهای Question
در پنل مدیریت نمایش داده شوند، باید آنها را ثبت کنید. فایل polls/admin.py
را ویرایش کنید:
from django.contrib import admin
from .models import Question
admin.site.register(Question)
نکات مهم
پنل مدیریت برای مدیران سایت طراحی شده و نه برای کاربران عمومی.
فیلدهای مدل به طور خودکار به فرمهای HTML در پنل مدیریت تبدیل میشوند.
برای افزودن امکانات بیشتر به پنل مدیریت میتوانید مدلها را به صورت پیشرفتهتر تنظیم کنید.
جمعبندی
در این قسمت:
پایگاه داده را تنظیم کردیم.
مدلهای
Question
وChoice
را تعریف و به پروژه اضافه کردیم.دستورات مهاجرت برای ایجاد جداول را اجرا کردیم.
با API مدلها در محیط تعاملی آشنا شدیم.
کاربر مدیر ساختیم و پنل مدیریت را راهاندازی کردیم.
0 دیدگاه