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

جنگو چارچوب وب پایتون منتخب برای ساخت برنامه های وب است. این یک چارچوب بالغ، با امکانات کامل، انعطاف‌پذیر و منبع باز است که به شما امکان می‌دهد هر چیزی را از یک برنامه ساده CRUD تا یک پروژه پیچیده‌تر و چند برنامه‌ای مانند یک برنامه اشتراک‌گذاری عکس بسازید.

الزامات

برای راه اندازی پروژه جنگو نیازی به دانش قبلی ندارید. اما جنگو یک فریمورک پایتون است، بنابراین برای استفاده از آن باید پایه های قوی با استفاده از پایتون داشته باشید.

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

اکثر سیستم‌های macOS و Linux به طور پیش‌فرض پایتون 3 را نصب کرده‌اند، اما اگر از ویندوز استفاده می‌کنید، باید آن را دانلود و نصب کنید. پایتون. می توانید این راهنما را از سایت دنبال کنید وب سایت رسمی پایتون.

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

ترمینال را با برنامه یاب باز کنید

هنگامی که یک ترمینال را راه اندازی کردید، زمان آن است که نسخه پایتون خود را تأیید کنید. برای این کار دستور زیر را تایپ کنید:

python --version

Python 3.9.7 

اگر نتیجه ای از فرم Python 3.x دریافت نکردید، نترسید. دو گزینه وجود دارد:

  • اگر python --version یک نسخه Python 2.x را برگرداند، باید از آن استفاده کنید python3 همراه با این آموزش این معمولاً در برخی از سیستم‌های macOS و همچنین در برخی از توزیع‌های لینوکس مانند اوبونتو اتفاق می‌افتد. سعی کنید دستور زیر را اجرا کنید:

    python3 --version
    
    Python 3.9.7 
    
  • اگر شما یک Unknown command خطا، سعی کرد اجرا شود python3و همچنان با یک خطای دیگر مواجه می شوید، باید پایتون را از وب سایت رسمی دانلود و نصب کنید.

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

پروژه جنگو چیست؟

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

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

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

یک نمایش سریع از این است مینیمال جنگو پروژه این یک فایل با 23 خط کد است که به ما امکان می دهد یک جنگو “Hello, World!” بیاوریم. پروژه به زندگی:

import sys

from django.conf import settings
from django.urls import path
from django.core.management import execute_from_command_line
from django.http import HttpResponse

settings.configure(
    DEBUG=True,
    ROOT_URLCONF=sys.modules[__name__],
)


def index(request):
    return HttpResponse('<h1>A minimal Django response!</h1>')


urlpatterns = [
    path(r'', index),
]

if __name__ == '__main__':
    execute_from_command_line(sys.argv)

اکنون، پروژه جنگو می تواند بسیار فراتر از این باشد. یک مثال عالی اینستاگرام است که هزاران نقطه پایانی جنگو دارد و همچنان از این چارچوب برای عملکردهای حیاتی استفاده می کند.

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

اگر برخی از دستورات زیر پیچیده به نظر می رسند زیاد نگران نباشید. پس از ایجاد چند پروژه، آنها را مانند پشت دست خود خواهید شناخت.

اول از همه، باید بدانید که جنگو یک بسته خارجی است. به عبارت دیگر، با پایتون داخلی نمی آید، بنابراین باید آن را با PIP نصب کنید.

PIP یک مدیر بسته برای پایتون است، ابزاری که به شما امکان می‌دهد بسته‌های پایتون را از روی آن نصب کنید فهرست بسته پایتون (PyPI).

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

شاید کدی که در پروژه جنگو 2.6 دارید با جنگو 3.0 کار نکند. یک محیط مجازی به شما امکان می دهد برای هر پروژه ای که دارید، نیازهای خاصی داشته باشید.

می توانید یک محیط مجازی به نام ایجاد کنید .venv (یا هر نامی که می خواهید) با دستور زیر:

python -m venv .venv

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

$ ls -lah .venv/
Permissions Size User   Date Modified Name
drwxr-xr-x     - daniel 10 nov 23:13  .
drwxr-xr-x     - daniel 10 nov 23:13  ..
drwxr-xr-x     - daniel 10 nov 23:13  bin
drwxr-xr-x     - daniel 10 nov 23:13  include
drwxr-xr-x     - daniel 10 nov 23:13  lib
lrwxrwxrwx     3 daniel 10 nov 23:13  lib64 -> lib
.rw-r--r--    69 daniel 10 nov 23:13  pyvenv.cfg

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

source .venv/bin/activate

این فقط روی پوسته های bash (موجود در macOS و Linux) کار می کند. اگر از پوسته دیگری استفاده می کنید، می توانید به فعال سازی زیر نگاهی بیندازید venv جدول:

سکو پوسته دستور فعال سازی محیط مجازی
POSIX bash/zsh $ source .venv>/bin/activate
ماهی $ source .venv>/bin/activate.fish
csh/tcsh $ source .venv>/bin/activate.csh
هسته پاورشل $ .venv/bin/Activate.ps1
پنجره ها cmd.exe C:> .venvScriptsactivate.bat
پاورشل PS C:> .venvScriptsActivate.ps1

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

درخواست محیط مجازی

اکنون بسته جنگو را نصب کنید. شما می توانید آخرین یا یک نسخه خاص از جنگو را نصب کنید:

pip install django 
pip install django==2.2 

پروژه را شروع کنید

هنگامی که جنگو را نصب کردید، برای شروع یک پروژه جدید با شماره تماس می گیرید django-admin ابزار خط فرمان و اجرا:

django-admin startproject <project_name>

شایان ذکر است که برخی از نام ها برای جنگو محفوظ است. django یا django-admin. اگر با خطا مواجه شدید نگران نباشید. فقط سعی کنید از نام پروژه دیگری استفاده کنید:

django-admin startproject django

django-admin startproject django-admin

یک روش معمول این است که نام پروژه خود را به عنوان نامگذاری کنید config، و این مزایایی دارد. اولاً، این نامی است که می‌توانید آن را در تمام پروژه‌های خود ثابت نگه دارید، و دوم اینکه، معمولاً پوشه «پروژه» فقط فایل‌های مرتبط با پیکربندی را ذخیره می‌کند. می توانید اطلاعات بیشتر را در سایت رسمی بخوانید انجمن جنگو:

django-admin startproject config

ساختار پروژه جنگو

هنگامی که یک پروژه جنگو را شروع کردید، یک پوشه جدید با نام پروژه ای که انتخاب کرده اید و ساختاری شبیه به این خواهید دید:

.
├── config
│   ├── config
│   │   ├── asgi.py
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── manage.py
└── .venv

بیایید هر بخش را عمیقاً تحلیل کنیم:

  • config/ پوشه خارجی پروژه شما است. برای جنگو مهم نیست، بنابراین می توانید نام آن را به هر چیزی که می خواهید تغییر دهید.
  • config/config/ پوشه واقعی پروژه جنگو است. این شامل فایل های تنظیمات پروژه شما است.
  • manage.py یک اسکریپت پایتون با همان عملکرد است django_admin اما از تنظیمات پروژه شما استفاده می کند.
  • __init__.py باعث می شود config/config یک بسته پایتون
  • settings.py فایل اصلی پروژه شما است. شما می توانید برای تغییر رفتار پروژه خود متغیرهایی را اضافه، اصلاح یا حذف کنید.
  • urls.py فایلی است که URL های پروژه شما را تعریف می کند.
  • asgi.py و wsgi.py به شما اجازه می دهد پروژه خود را در یک سرور مستقر کنید.

می‌دانم که ساختار پروژه جنگو ممکن است در ابتدا کمی پیچیده باشد، اما با گذشت زمان، به نظر می‌رسد. هر فایل هدفی دارد و روند توسعه بسیار دلپذیر می شود.

یک میانبر متداول این است که ایجاد پوشه خارجی را حذف کنید. این مفید است زیرا هنگام استقرار در چیزی مانند Heroku نیازی به تغییر ساختار پروژه خود نخواهید داشت:

django-admin startproject <project_name> .

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

django-admin startproject config .

هر دستور را به تنهایی امتحان کنید و تصمیم بگیرید که کدام یک برای شما بهترین است.

برای اتمام این بخش، سرور توسعه جنگو را راه اندازی می کنیم و بررسی می کنیم که راه اندازی پروژه با موفقیت انجام شده است.

به پوشه ریشه پروژه خود بروید (در آنجا manage.py واقع شده است) و سرور را با این دستور راه اندازی کنید:

python manage.py runserver

اکنون به مرورگر خود بروید و تایپ کنید لوکال هاست: 8000/ و باید صفحه پیش فرض جنگو را ببینید.

صفحه خوش آمدگویی جنگو

نحوه راه اندازی اپلیکیشن جنگو

همانطور که قبلاً به شما گفتم، پروژه جنگو با برنامه جنگو متفاوت است.

از اسناد رسمی: “برنامه یک برنامه وب است که کاری انجام می دهد”. این چیزی یک عملکرد خاص مانند برنامه کاربر، یک برنامه نظرات، یک برنامه چت است.

هرچه برنامه های شما ویژگی های بیشتری داشته باشند، بهتر است.

یک برنامه جنگو مستقل است، به این معنی که می توان از پروژه ای به پروژه دیگر از آن استفاده کرد. به همین دلیل است که می توانید یک برنامه خارجی مانند جنگو آلوثو فقط با اضافه کردن آن به پروژه خود از آن استفاده کنید INSTALLED_APPS متغیر.

شما بیشتر وقت خود را صرف کار با برنامه ها خواهید کرد، زیرا آنها یکی یکی تمام ویژگی های پروژه شما را ایجاد می کنند.

از این به بعد، شما از manage.py ابزار، بنابراین برای ایجاد یک برنامه، به پوشه root پروژه خود بروید و دستور زیر را اجرا کنید:

python manage.py startapp <app_name>

سعی کنید تا حد امکان با نام برنامه های خود مشخص باشید. اگر می خواهید برنامه ای برای ادغام پرداخت ها با PayPal یا Stripe ایجاد کنید، آن را به سادگی نام ببرید payments:

python manage.py startapp payments

بیایید به طور عمیق به ساختار یک برنامه جنگو برویم:

.
├── config
│   ├ ...
├── manage.py
└── payments
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
  • payments/ پوشه برنامه شما است.
  • admin.py برای ثبت مدل ها در رابط مدیریت جنگو استفاده می شود.
  • apps.py پیکربندی برنامه را تعریف می کند.
  • models.py برای ذخیره مدل ها، که اشیایی هستند که برای ذخیره و کنترل داده ها ایجاد می کنیم، استفاده می شود.
  • migrations/ پوشه ای است که حاوی اسکریپت های مهاجرت برنامه است. برای اعمال تغییرات مدل های ما در پایگاه داده، مهاجرت ها را اجرا می کنید.
  • tests.py برای تست برنامه استفاده می شود.
  • views.py فایلی است که در آن نماهای برنامه خود را تعریف می کنیم. View یک برنامه فراخوانی پایتون است که یک درخواست HTTP را دریافت می کند و یک پاسخ HTTP را برمی گرداند.

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

چیت شیت فرمان

ما در این آموزش از دستورات زیادی استفاده کرده ایم، بنابراین در اینجا خلاصه ای از هدف هر دستور آورده شده است.

فرمان شرح
python -m venv (name_of_venv) یک محیط مجازی ایجاد می کند
source (venv)/bin/activate یک محیط مجازی را فعال می کند
django-admin startproject (project_name) پروژه جنگو را شروع می کند
django-admin startproject (project_name) . یک پروژه را در همان فهرست راه اندازی می کند
python manage.py runserver سرور جنگو را اجرا می کند
python manage.py startapp (app_name) یک برنامه جنگو ایجاد می کند

نتیجه

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

با این آموزش یاد گرفتید که:

  • ایجاد یک محیط مجازی
  • یک نسخه خاص جنگو را نصب کنید
  • شروع یک پروژه جنگو
  • سرور جنگو را اجرا کنید
  • یک برنامه جنگو ایجاد کنید
  • بین برنامه جنگو و پروژه جنگو تفاوت قائل شوید

برای اینکه این کار را یک قدم جلوتر بردارید، «ساخت برنامه اشتراک‌گذاری عکس با جنگو» را بررسی کنید.