نصب جنگو
ابتدا جهت اطمینان از نصب بودن پایتون، دستور کد ذیل را در محیط ترمینال اجرا میکنیم
python --version
در خروجی میبایست مشخصات نسخه نصب شده بر روی سیستم نمایش داده شود. در صورتی که پایتون بر روی سیستم نصب نباشد، میبایست از طریق سایت رسمی پایتون، اقدام به دانلود و نصب آن نمود.
Python 3.10.0
برای نصب جنگو، بهترین راه استفاده از یک package manager مانند PIP
است که یک ابزار نصبکنندهی بسته برای پایتون و مخفف عبارت "Pip Installs Packages" میباشد و برای نصب و مدیریت بستههای نرمافزاری نوشته شده بر بستر پایتون استفاده میگردد. از نسخه 3.4 در پایتون به صورت پیشفرض موجود است. برای اطمینان از نصب بودن PIP
در سیستم، از دستور زیر میتوان استفاده کرد:
pip --version
اگر نسخهای از PIP
بر روی سیستم وجود داشته باشد، شماره نسخه نصب شده آن نمایش داده خواهد شد.
pip 23.0
پیشنهاد میشود برای جلوگیری از اختلال پروژهها، برای هر پروژه جنگو، یک فضای اختصاصی (Virtual Environment) جداگانهای، اختصاص گردد، چرا که هر پروژه ممکن است به نسخههای مختلفی از کتابخانهها مانند جنگو یا سایر ابزارها نیاز داشته باشد؛ اگر تمام پروژهها روی یک محیط مشترک نصب شوند، تضاد نسخهها باعث خطا، عدم سازگاری یا حتی قفل شدن پروژهها میشود، در حالی که با استفاده از venv
، هر پروژه، کتابخانههای اختصاصی و مستقل خود را خواهد داشت و سیستم اصلی پاک و سالم میماند. همچنین توسعه، تست و انتقال پروژه به سایر دستگاهها یا تیمها به راحتی و بدون خطای تداخلی انجام میشود — این رویکرد نه تنها استاندارد صنعتی است، بلکه از بسیاری از مشکلات زمانبر و پیچیده در توسعه نرمافزار جلوگیری میکند. یکی از راههای مدیریت فضای اختصاصی، venv
است که در پایتون گنجانده شده است.
نام فضای اختصاصی، اختیاری و به انتخاب کاربر بستگی داشته و میتواند هر نام دلخواهی باشد، در این آموزش از نامگذاری venv بهره برده خواهد شد که یک نام استاندارد و همچنین پرکاربرد در میان جامعه برنامهنویسان میباشد.
برای ایجاد یک فضای اختصاصی، میبایست یکی از دستورات زیر را در ترمینال دایرکتوری پروژه اجرا کرد.
virtualenv venv
python3 -m venv venv
❗❗❗ دایرکتوری پروژه، دایرکتوری خواهد بود که هر دو دایرکتوری فضای اختصاصی پروژه - venv
- و دایرکتوری جنگوی پروژه را شامل میگردد. برای راحتی کار پیشنهاد میگردد دایرکتوری پروژه را با عنوان Projectname-Project تعریف کرد و عنوان Projectname-Django را برای دایرکتوری جنگوی پروژه اختصاص داد. در نهایت Projectname با عنوان هر پروژهای که بر روی آن کار خواهیم نمود، جایگزین خواهد شد.
└───Tutorial-Project
├───Tutorial-Django
└───venv
پس از ایجاد فضای اختصاصی پروژه، میبایست آن را فعال نمود: در سیستم عامل ویندوز این امر توسط دستور کدی زیر صورت میپذیرد:
venv\Scripts\activate
و برای سیستم عامل لینوکس:
source venv/bin/activate
باید توجه داشت که بعد از فعال نمودن فضای اختصاصی پروژه، باید محیط ترمینال با نام (venv)
و یا هر نامی که هنگام ساختن فضای اختصاصی تعریف نمودیم، آغاز گردد.
حال میبایست نسبت به نصب جنگو در محیط اختصاصی پروژه اقدام گردد.
(venv) pip install Django
با اجرای کد دستوری زیر، میتوان تمامی پکیجهای محیط اختصاصی venv
، همراه با نسخههای نصب شده از آنها را لیست کرد:
(venv) pip list
Package Version
----------------- -------
asgiref 3.9.1
Django 5.2.6
pip 22.2.2
setuptools 63.2.0
sqlparse 0.5.3
typing_extensions 4.15.0
tzdata 2025.2
❗❗❗ جنگو به همراه خود پکیجهای tzdata, typing_extensions, sqlparse, asgiref را نیز به عنوان پیشنیاز درستی اجرای کار خود، نصب میکند.
پس از اطمینان از نصب جنگو، دستور کدی زیر، لیست دستوراتی که در جنگو به آنها دسترسی خواهیم داشت را نمایش میدهد:
(venv) django-admin
از مهمترین دستورات جنگو میتوان به موارد زیر اشاره کرد.
⮜ ایجاد پروژه ━ startproject
یک پروژه جنگوی جدید با ساختار اصلی ایجاد میکند.
django-admin startproject projectname
⮜ ایجاد اپ ━ startapp
یک app (ماژول جداگانه مانند blog
, user
) درون پروژه ایجاد میکند.
python manage.py startapp appname
⮜ اجرای پروژه ━ runserver
سرور محلی روی http://127.0.0.1:8000
راهاندازی میشود
python manage.py runserver
در صورت نیاز به اجرای پروژه بر روی پورت اختصاصی
python manage.py runserver 8080
⮜ ایجاد مایگریشنها ━ makemigrations
تغییرات مدلها (Models) را به عنوان فایل مایگریشن ذخیره میکند
python manage.py makemigraions
⮜ اجرای مایگریشنها ━ migrate
مایگریشنها را روی پایگاه داده اجرا میکند (جدولها ایجاد یا تغییر میکند).
python manage.py migrate
⮜ ایجاد کاربر ادمین ━ createsuperuser
کاربر مدیریتی Superuser
برای دسترسی به پنل admin ایجاد میکند.
python manage.py createsuperuser
⮜ جمعآوری فایلها ━ collectstatic
تمام فایلهای CSS, JS, Images را از اپها جمعآوری و در دایرکتوری تعریف شده برای STATIC_ROOT قرار میدهد (برای سرور تولیدی مثل Nginx).
python manage.py collectstatic
⮜ نمایش تنظیمات ━ diffsettings
تفاوت تنظیمات فعلی با مقادیر پیشفرض را نشان میدهد.
python manage.py diffsettings