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 دیدگاه