ساخت وبسایت با Django: یک آموزش جامع
Django یک فریمورک توسعه وب سطح بالا به زبان پایتون است که طراحی شده برای توسعه سریع، امن و قابل نگهداری وبسایتها را تسهیل میکند. این فریمورک از الگوی معماری Model-View-Template (MVT) پیروی میکند که به سازماندهی کد و جداسازی نگرانیها کمک میکند. این مقاله یک راهنمای گام به گام برای شروع کار با Django و ساخت یک وبسایت ساده ارائه میدهد.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:
- پایتون (نسخه 3.6 یا بالاتر)
- مدیر بسته پایتون (pip)
- یک ویرایشگر کد (مانند VS Code، PyCharm یا Sublime Text)
نصب Django
برای نصب Django، از pip استفاده کنید:
pip install django
پس از نصب، میتوانید نسخه Django را با دستور زیر بررسی کنید:
django-admin --version
ایجاد یک پروژه Django
برای شروع یک پروژه جدید Django، از دستور django-admin startproject استفاده کنید. نام پروژه را به عنوان آرگومان وارد کنید. به عنوان مثال:
django-admin startproject myproject
این دستور یک دایرکتوری با نام myproject ایجاد میکند که شامل فایلهای پیکربندی پروژه است. ساختار دایرکتوری به این صورت خواهد بود:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
manage.py یک اسکریپت خط فرمان است که به شما امکان میدهد تا وظایف مختلف مدیریتی را انجام دهید. settings.py شامل تنظیمات پروژه است. urls.py شامل الگوهای URL پروژه است. asgi.py و wsgi.py برای استقرار پروژه استفاده میشوند.
اجرای سرور توسعه
برای اجرای سرور توسعه Django، به دایرکتوری پروژه بروید و دستور زیر را اجرا کنید:
python manage.py runserver
این دستور سرور توسعه را در آدرس http://127.0.0.1:8000/ اجرا میکند. در مرورگر خود این آدرس را باز کنید تا صفحه پیشفرض Django را مشاهده کنید.
ایجاد یک برنامه (App)
در Django، یک پروژه از یک یا چند برنامه (app) تشکیل شده است. هر برنامه مسئولیت یک بخش خاص از وبسایت را بر عهده دارد. برای ایجاد یک برنامه جدید، از دستور python manage.py startapp استفاده کنید. نام برنامه را به عنوان آرگومان وارد کنید. به عنوان مثال:
python manage.py startapp myapp
این دستور یک دایرکتوری با نام myapp ایجاد میکند که شامل فایلهای برنامه است. ساختار دایرکتوری به این صورت خواهد بود:
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
models.py شامل تعریف مدلهای داده است. views.py شامل منطق برنامه است. admin.py برای پیکربندی پنل مدیریت Django استفاده میشود.
تعریف مدلها (Models)
مدلها، ساختار دادههای وبسایت شما را تعریف میکنند. در فایل models.py برنامه خود، مدلهای مورد نیاز را تعریف کنید. به عنوان مثال، یک مدل برای ذخیره اطلاعات پستهای وبلاگ:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.title
این مدل دارای سه فیلد است: title (عنوان)، content (محتوا) و pub_date (تاریخ انتشار). تابع __str__ برای نمایش عنوان پست در پنل مدیریت Django استفاده میشود.
انجام مهاجرتها (Migrations)
پس از تعریف مدلها، باید تغییرات را به پایگاه داده اعمال کنید. Django از سیستم مهاجرتها برای این منظور استفاده میکند. برای ایجاد فایلهای مهاجرت، دستور زیر را اجرا کنید:
python manage.py makemigrations myapp
این دستور فایلهای مهاجرت را در دایرکتوری migrations برنامه شما ایجاد میکند. برای اعمال مهاجرتها به پایگاه داده، دستور زیر را اجرا کنید:
python manage.py migrate
این دستور جداول مربوط به مدلهای شما را در پایگاه داده ایجاد میکند.
تعریف Viewها (Views)
Viewها، منطق برنامه را پیادهسازی میکنند و دادهها را به قالبها ارسال میکنند. در فایل views.py برنامه خود، Viewهای مورد نیاز را تعریف کنید. به عنوان مثال، یک View برای نمایش لیست پستهای وبلاگ:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'myapp/post_list.html', {'posts': posts})
این View تمام پستهای وبلاگ را از پایگاه داده دریافت میکند و آنها را به قالب myapp/post_list.html ارسال میکند.
ایجاد قالبها (Templates)
قالبها، ظاهر وبسایت شما را تعریف میکنند. Django از یک موتور قالببندی قدرتمند برای این منظور استفاده میکند. در دایرکتوری templates برنامه خود، فایلهای قالب مورد نیاز را ایجاد کنید. به عنوان مثال، فایل myapp/post_list.html:
<!DOCTYPE html>
<html>
<head>
<title>لیست پستها</title>
</head>
<body>
<h1>لیست پستها</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>
</body>
</html>
این قالب یک لیست از عنوانهای پستهای وبلاگ را نمایش میدهد.
تعریف URLها (URLs)
URLها، آدرسهای وبسایت شما را تعریف میکنند. در فایل urls.py پروژه و برنامه خود، URLهای مورد نیاز را تعریف کنید. ابتدا، در فایل myproject/urls.py، برنامه خود را به لیست URLها اضافه کنید:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]
سپس، در فایل myapp/urls.py (اگر وجود ندارد، آن را ایجاد کنید)، URLهای برنامه خود را تعریف کنید:
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
این URL، View post_list را به آدرس ریشه برنامه (/myapp/) متصل میکند.
تست وبسایت
پس از انجام مراحل بالا، میتوانید وبسایت خود را تست کنید. سرور توسعه را دوباره اجرا کنید (در صورت نیاز) و به آدرس http://127.0.0.1:8000/myapp/ در مرورگر خود بروید. باید لیست پستهای وبلاگ را مشاهده کنید.
پنل مدیریت Django
Django یک پنل مدیریت قدرتمند ارائه میدهد که به شما امکان میدهد تا دادههای وبسایت خود را به راحتی مدیریت کنید. برای دسترسی به پنل مدیریت، به آدرس http://127.0.0.1:8000/admin/ در مرورگر خود بروید. برای ورود به سیستم، از نام کاربری و رمز عبور یک کاربر سوپر یوزر استفاده کنید. اگر هنوز یک کاربر سوپر یوزر ایجاد نکردهاید، از دستور زیر استفاده کنید:
python manage.py createsuperuser
این دستور از شما نام کاربری، ایمیل و رمز عبور را میخواهد. پس از ایجاد کاربر سوپر یوزر، میتوانید به پنل مدیریت Django دسترسی پیدا کنید و دادههای وبسایت خود را مدیریت کنید.
نتیجهگیری
این مقاله یک معرفی جامع به Django و ساخت وبسایت با این فریمورک ارائه داد. با استفاده از Django، میتوانید به سرعت و به آسانی وبسایتهای قدرتمند و قابل نگهداری ایجاد کنید. این فقط یک شروع است و Django امکانات بسیار بیشتری برای توسعه وب ارائه میدهد. با مطالعه مستندات Django و تمرین بیشتر، میتوانید مهارتهای خود را در این زمینه بهبود بخشید.

بدون دیدگاه