نصب جنگو


ابتدا جهت اطمینان از نصب بودن پایتون، دستور کد ذیل را در محیط ترمینال اجرا می‌کنیم

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