جنگو (Django) چیست؟

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

مزایای یادگیری جنگو چیست؟

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

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

آموزش 0 تا 100 فریم ورک جنگو کاملا رایگان

ساخت اپلیکیشن در جنگو

ابتدا باید پروژه‌ی جنگو را ایجاد کنید. برای این کار کافیست وارد نرم‌افزار Pycharm شوید و گزینهnew project را بزنید تا یک پروژه‌ی جنگو‌ی جدید ایجاد کنید. نام آن را به دلخواه Sample می‌گذاریم.

یک دایرکتوری جدید با نام Sample ساخته می‌شود که محتویات داخل آن بصورت خودکار ایجاد می‌شوند و ساختار دایرکتوری ساخته شده به شکل زیر می‌باشد:

 

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

پس از ساخت پروژه حالا باید آن را اجرا کنید تا بررسی کنید که راه‌اندازی پروژه با موفقیت انجام شده است یا خیر:

 

$ python manage.py runserver

سپس باید به آدرس http://localhost:8000  در مرورگر خود بروید، و اگر با موفقیت پروژه را راه‌اندازی کرده باشید باید صفحه زیر را مشاهده کنید:

جنگو

تبریک! شما یک سایت جنگو ایجاد کردید. گام بعدی ایجاد اپلیکیشن‌هایی است که با استفاده از آنها بتوانید قابلیت‌های مختلف را به سایت خود اضافه کنید.

حالا وقت آن است که یک اپلیکیشن برای پروژه خود بسازید. برای این کار از دستور زیر استفاده می‌شود:

 

python3 manage.py startapp appname

یک اپلیکیشن با نام appname ساخته می‌شود که داخل آن فایل‌هایی بصورت پیش‌فرض وجود دارند:

 

├── appname/
	├── migrations/
│   	├── init__.py__
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── 

در ادامه توضیحات مختصری درباره فایل‌های موجود در اپلیکیشن آورده شده است:

  • py: شامل تنظیماتی برای صفحات مدیریت جنگو می‌باشد.
  • py: شامل تنظیماتی برای پیکربندی برنامه است تا کاربر تنظیمات دلخواه خود را برای اپلیکیشن اعمال کند.
  • py: دیتا‌ مدل‌ها و موارد مربوط به پایگاه داده‌ی اپلیکیشن در این فایل قرار می‌گیرند.
  • py: کلاس‌های تست‌ و آزمایش اپلیکیشن در این فایل نوشته می‌شوند.
  • py: آدرس‌‌ها و مسیرها در این فایل قرار می‌گیرند.
  • py: این فایل مغز اپلیکیشن است و توابع مربوط به قالب سایت در این فایل نوشته می‌شوند.

فایل‌های HTML را درون دایرکتوری به نام templates ایجاد و نگهداری می‌شوند.

مرحله فعالسازی اپلیکیشن

برای فعالسازی اپلیکیشن، باید داخل فایل settings.py در بخش INSTALLED_APPS نام اپلیکیشن را اضافه کنید:

 

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appname',
]

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

ایجاد view

فایل views.py در جنگو در ابتدا خالی می‌باشد اما در این فایل قرار است توابع و کلاس‌هایی نوشته شود که هرکدام منطقی را پیاده‌سازی می‌کنند. این توابع request دریافت کرده و response برمی‌گردانند.

برای پیاده‌سازی منطق پروژه ابتدا view را برای اپلیکیشن ایجاد می‌کنیم و برای آن آدرس url در فایل urls.py تعریف کرده و در نهایت به قالب HTML خود آن را متصل می‌کنیم.

تعریف url به شکل زیر است:

 

from appname.views import home

urlpatterns = [
path('',home, name='home')	
]

بعنوان مثال کد زیر را در فایل views.py از اپلیکیشن appname نوشته و اجرا کنید:

 

from django.shortcuts import render

def home(request):
	context={}
    return render(request, "base/home.html", context)

در این قطعه کد یک view function به نام home() تعریف می‌شود. وقتی آدرس url داده شده را فراخوانی می‌کنیم، این تابع را فراخوانی می‌شود، فایل HTML با نام home.html را از دایرکتوری base رندر می‌کند.