Django، یک چارچوب وب پایتون با امکانات کامل برای توسعه وب‌سایت‌ها و برنامه‌های پویا است. با استفاده از Django می‌توانید، به سرعت برنامه های وب پایتون ایجاد کرده و با تکیه بر آن چارچوب، طراحی‌های سنگین را به خوبی انجام دهید.

 

در این راهنما، شما می‌توانید Django را بر روی یک سرور Ubuntu 20.04 راه‌اندازی کنید. بدین منظور، پس از نصب، شما یک پروژه جدید را شروع کرده و از آن به عنوان پایه سایت خود استفاده نمایید.

بسته به نیاز شما و نحوه پیکربندی محیط توسعه‌تان، روش‌های مختلفی برای نصب Django وجود دارد. هر کدام از روش‌ها، مزایای مختلفی دارند و ممکن است یک روش در شرایط خاص، بهتر از سایر روش‌ها عمل کند.

این روش‌ها عبارتند از:

  • نصب سراسری از روی بسته‌ها: مخازن رسمی اوبونتو، حاوی بسته‌های Django هستند که می‌توانند با ابزار مدیریت بسته معمولی apt نصب شوند. اگرچه این روش، روش ساده‌ای است؛ اما به انعطاف پذیری برخی روش‌ها نیست. همچنین، نسخه موجود در مخازن ممکن است از آخرین نسخه‌های رسمی عقب باشد.
  • نصب با pip در یک محیط مجازی: با استفاده از ابزارهایی مانند venv و virtualenv می‌توانید، برای پروژه‌های خود محیطی مستقل ایجاد کنید. یک محیط مجازی به شما امکان می‌دهد، Django را بدون تأثیر زیاد در سیستم، همراه با سایر تنظیمات و بسته‌های هر پروژه، در یک project directory نصب نمایید. این، معمولاً عملی‌ترین و توصیه شده‌ترین رویکرد برای نصب و کار با Django است.
  • نصب نسخه توسعه با git: اگر می‌خواهید آخرین نسخه توسعه را به جای نسخه پایدار نصب کنید، می‌توانید کد را از مخزن repo دریافت نمایید. این کار، برای دریافت جدیدترین ویژگی‌ها و اصلاحات ضروری است و می‌تواند در محیط مجازی شما انجام شود. نسخه‌های توسعه دارای ضمانت‌های پایدار مشابه نسخه‌های پایدارتر نیستند.

نکته: قبل از دنبال کردن مراحل زیر، شما باید یک کاربر غیر root با امتیازات sudo در سرور اوبونتو 20.04 خود داشته باشید.

 

نصب سراسری از روی بسته ها

اگر می‌خواهید Django را با استفاده از مخازن اوبونتو نصب کنید، روند کار بسیار ساده است.

ابتدا فهرست بسته محلی خود را با apt به روز نمایید:

sudo apt update

در مرحله بعدی، بررسی کنید که کدام نسخه از پایتون را نصب کرده‌اید. اوبونتوی 20.04 به طور پیش فرض با پایتون 3.8 همراه است. شما می‌توانید نسخه آن را با تایپ کردن دستور زیر بررسی کنید:

python3 -V

خروجی اجرای دستور باید مشابه زیر باشد:

Output:
Python 3.8.2

 

سپس، Django را نصب نمایید:

sudo apt install python3-django

اکنون می‌توانید، با تایپ کردن دستور زیر، موفقیت نصب Django را امتحان کنید:

django-admin --version
:Output
2.2.12

این خروجی، بدان معنی است که نرم افزار با موفقیت نصب شده است. شما همچنین ممکن است متوجه شوید که این نسخه، آخرین نسخه پایدار Django نیست.

 

نصب با pip در یک محیط مجازی

انعطاف‌پذیرترین روش برای نصب Django بر روی سیستم شما، نصب آن در یک محیط مجازی است. در اینجا، به شما نحوه نصب Django در یک محیط مجازی با استفاده از ماژول venv (بخشی از کتابخانه استاندارد Python 3) آموزش داده شده است. این ابزار به شما امکان می‌دهد بدون ایجاد تأثیر برروی سیستم، محیط های مجازی پایتون را ایجاد کرده و بسته های پایتون را نصب نمایید. بنابراین می‌توانید بسته‌های پایتون را بر اساس هر پروژه، بدون در نظر گرفتن مغایرت با شرایط دیگر پروژه‌ها، انتخاب کنید.

در ابتدا فهرست بسته‌های محلی را به روز نمایید:

sudo apt update

سپس نسخه پایتونی را که نصب کرده اید، بررسی نمایید:

python3 -V
Output
Python 3.8.2

 

در مرحله بعد، pip و venv را از مخازن اوبونتو نصب کنید:

sudo apt install python3-pip python3-venv

اکنون هر زمان که پروژه جدیدی را شروع کنید، می‌توانید یک فضای مجازی برای آن ایجاد نمایید.

با ایجاد و انتقال به یک دایرکتوری جدید پروژه را شروع کنید:

mkdir ~/newproject
cd ~/newproject

سپس، با استفاده از دستور python که با نسخه پایتون شما سازگار است، یک محیط مجازی در project directory ایجاد نمایید. در اینجا محیط مجازی خود را my_env نامیده‌ایم؛ ولیکن شما نام مورد نظر خود را به جای آن وارد کنید.

python3 -m venv my_env

 

با این کار، نسخه های مستقل پایتون نصب شده و در یک ساختار دایرکتوری مجزا در project directory شما pip می‌شود. اکنون یک دایرکتوری با نامی که انتخاب کرده‌اید، ایجاد می‌شود که سلسله مراتب فایل را در جایی که بسته‌های شما نصب می‌شود، نگه می‌دارد.

به منظور نصب بسته‌ها در یک محیط جداگانه، باید آن را با تایپ کردن دستور زیر فعال نمایید:

source my_env/bin/activate

پس از آن، ترمینال شما باید به گونه‌ای تغییر کند که نشان دهد، اکنون در محیط مجازی خود هستید. به عنوان مثال، مشابه زیر خواهد شد.

 (my_env) $ pip install django

در محیط جدید خود می‌توانید از pip برای نصب Django استفاده کنید. صرف نظر از نسخه پایتون، وقتی در محیط مجازی هستید، pip، تنها باید pip نامیده شود. همچنین توجه داشته باشید که دیگر نیازی به استفاده از sudo ندارید؛ چرا که بصورت محلی آن را نصب می‌کنید:

 (my_env) $ pip install django

 

اکنون، با تایپ کردن دستور زیر می‌توانید، نصب را تأیید نمایید:

(my_env) $ django-admin --version
:Output
3.0.8

توجه داشته باشید که نسخه شما ممکن است با نسخه نشان داده شده در اینجا متفاوت باشد.

برای ترک محیط مجازی خود، باید دستور غیرفعال کردن را به صورت زیر از هرجای سیستم صادر کنید:

(my_env) $ deactivate

اکنون، ترمینال شما باید به صفحه نمایش معمولی برگردد. وقتی می‌خواهید دوباره روی پروژه خود کار کنید، محیط مجازی خود را با برگشتن به project directory خود و فعال‌سازی آن، مجدداً فعال نمایید:

cd ~/newproject
source my_env/bin/activate

 

نصب نسخه توسعه با Git

اگر به نسخه توسعه دهنده Django نیاز دارید، می‌توانید Django را از مخزن Git آن بارگیری کرده و نصب نمایید. بیایید این کار را در یک محیط مجازی انجام دهیم.

ابتدا با استفاده از دستور زیر، فهرست بسته‌های محلی را به روز کنید.

sudo apt update

سپس، نسخه پایتونی را که نصب کرده‌اید، بررسی نمایید:

python3 -V
:Output
Python 3.8.2

 

پس از آن، pip و venv را از مخازن رسمی نصب کنید:

sudo apt install python3-pip python3-venv

مرحله بعدی کپی کردن مخزن Django است. بین مخازن، این مخزن دارای ویژگی‌های به روز است. با تایپ کردن دستور زیر می‌توانید، مخزن را به پوشه‌ای به نام ~/django-dev درون دایرکتوری اصلی خود کپی کنید:

git clone git://github.com/django/django ~/django-dev

اکنون به دایرکتوری زیر بروید:

cd ~/django-dev

با استفاده از دستور python که با نسخه نصب شده پایتون سازگار است، یک محیط مجازی ایجاد نمایید:

python3 -m venv my_env

 

سپس آن را به صورت زیر فعال کنید:

source my_env/bin/activate

در مرحله بعد می‌توانید، مخزن را با استفاده از pip نصب نمایید. گزینه -e، آن را در حالت "editable" نصب می‌کند که هنگام نصب از کنترل نسخه (version control) لازم است:

(my_env) $ pip install -e ~/django-dev

اکنون، با تایپ کردن دستور زیر می‌توانید، تأیید کنید که نصب با موفقیت انجام شده است:

django-admin --version
:Output
3.2

باز هم ممکن است نسخه‌ای که مشاهده می‌کنید، با آنچه در اینجا نشان داده شده مطابقت نداشته باشد.

اکنون، شما آخرین نسخه Django را در محیط مجازی خود دارید.

 

ایجاد یک پروژه نمونه

با نصب Django می‌توانید، ساخت پروژه خود را شروع کنید. در این بخش، به چگونگی ایجاد یک پروژه و آزمایش آن بر روی سرور توسعه با استفاده از یک محیط مجازی پرداخته شده است.

ابتدا یک دایرکتوری برای پروژه خود ایجاد کرده و به آن دایرکتوری تغییر مسیر دهید:

mkdir ~/django-test
cd ~/django-test

سپس، محیط مجازی خود را ایجاد نمایید:

python3 -m venv my_env

پس از آن، محیط را فعال کنید:

source my_env/bin/activate

و Django را به صورت زیر نصب نمایید:

(my_env) $ pip install django

 

برای ساخت پروژه خود می‌توانید، از django-admin با دستور startproject استفاده کنید. در اینجا، ما پروژه خود را djangoproject نامیده‌ایم؛ اما شما می‌توانید آن را با نام دیگری جایگزین نمایید.

دستور startproject، یک دایرکتوری در دایرکتوری فعلی شما ایجاد می‌کند که شامل موارد زیر است:

  • یک اسکریپت مدیریتی به نام manage.py که می‌تواند برای مدیریت کارهای مختلف Django استفاده شود.
  • یک دایرکتوری (با همان نام پروژه) که شامل کد پروژه است.

برای جلوگیری از داشتن تعداد زیادی دایرکتوری تو در تو، به صورت زیر، به Django بگویید که اسکریپت مدیریت و دایرکتوری داخلی را در دایرکتوری فعلی قرار دهد (به نقطه (.) پایان دستور توجه کنید):

(my_env) $ django-admin startproject djangoproject .

برای انتقال پایگاه داده (در این مثال به طور پیش فرض از SQLite استفاده می‌کند) می‌توانید، از دستور migrate با Manage.py استفاده نمایید. این دستور، هر تغییری را که در مدل های Django خود ایجاد کرده‌اید، در طرح پایگاه داده شما اعمال می‌کند.

 

برای انتقال پایگاه داده، دستور زیر را تایپ کنید:

(my_env) $ python manage.py migrate

خروجی دستور مشابه زیر خواهد بود:

:Output
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK

در آخر، یک کاربر مدیریتی ایجاد کنید تا بتوانید از رابط مدیریت Djano استفاده نمایید. این کار را می‌توانید با دستور creatuperuser انجام دهید:

 (my_env) $ python manage.py createsuperuser

پس از اجرای دستور، از شما نام کاربری، آدرس ایمیل و رمز عبور کاربر درخواست می‌شود.

 

تغییر ALLOWED_HOSTS در تنظیمات Django

به منظور تست موفقیت آمیز برنامه خود، باید یکی از دستورالعمل‌ها را در تنظیمات Django تغییر دهید.

بدین منظور، ابتدا با تایپ کردن دستور زیر، فایل تنظیمات را باز کنید:

 (my_env) $ nano ~/django-test/djangoproject/settings.py

در داخل آن، دستورالعمل ALLOWED_HOSTS را پیدا کنید. این دستور، لیستی از آدرس‌ها یا نام دامنه‌هایی را مشخص می‌کند که می‌توانند برای اتصال به برنامه Django استفاده شوند. یک درخواست ورودی با یک سرآیند Host که در این لیست نیست، یک استثنا را ایجاد می‌کند. این مورد را باید برای جلوگیری از یک کلاس مشخص از آسیب‌پذیری امنیتی در Django تنظیم نمایید.

در براکت، آدرس های IP یا نام دامنه‌های مرتبط با سرور Django خود را لیست کنید. هر مورد باید در بین علامت نقل قول ذکر شده و موارد با یک کاما از هم جدا شوند. اگر می‌خواهید کل دامنه و زیر دامنه‌ها را درخواست نمایید، یک بازه به ابتدای آیتم اضافه کنید:

                    ~/django-test/djangoproject/settings.py

ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

پس از پایان کار، فایل را ذخیره کرده و از ویرایشگر خارج شوید.

 

تست سرور توسعه

پس از ایجاد کاربر، می‌توانید سرور توسعه Django را راه‌اندازی کنید تا ببینید پروژه جدید Django چگونه است.

قبل از اینکه سرور توسعه را امتحان نمایید، مطمئن شوید که پورت مناسب را در فایروال خود باز کرده‌اید. اگر راهنمای راه‌اندازی اولیه سرور را دنبال کرده‌اید و از UFW استفاده می‌کنید، می‌توانید با وارد کردن دستور زیر، پورت 8000 را باز کنید:

(my_env) $ sudo ufw allow 8000

سپس، سرور توسعه را با دستور زیر راه‌اندازی نمایید:

(my_env) $ python manage.py runserver your_server_ip:8000

آدرس IP سرور خود را به همراه پورت 8000 به صورت زیر در مرورگر وب خود باز کنید:

http://your_server_ip:8000

اکنون باید صفحه زیر را مشاهده نمایید:

 

برای دسترسی به رابط مدیریت، /admin/ را به انتهای URL خود اضافه نمایید:

http://your_server_ip:8000/admin/

با این کار به صفحه ورود به سیستم وارد خواهید شد:

 

اگر نام کاربری و رمز ورود ادمین تازه ایجاد شده را وارد کنید، به بخش مدیریت اصلی سایت دسترسی پیدا خواهید کرد:

 

پس از استفاده از رابط مدیریتی می‌توانید، با تایپ کردن CTRL-C در ترمینال خود، سرور توسعه را متوقف کنید.

پروژه Django که ایجاد کرده‌اید، زمینه ساختاری برای طراحی سایت کامل‌تر را فراهم می‌کند. برای کسب اطلاعات بیشتر در مورد نحوه ساخت برنامه‌ها و شخصی‌سازی سایت خود، به اسناد Django مراجعه نمایید.

 

 

 

منبع:

digitalocean