ارشد نرمافزار و توسعهدهنده React و Next.js🚀 | طراحی سایتهای مدرن و کاربرپسند | ارتباط با من zil.ink/seyedahmaddev
Django(Django) چیست؟ چرا جنگو را انتخاب کنیم؟ آموزش نصب و ایجاد یک پروژه

جنگو (Django) چیست؟
جنگو (Django) یک فریمورک قدرتمند و سطح بالا برای توسعهی وب با زبان پایتون است که توسعهی سریع، امنیت بالا و مقیاسپذیری را فراهم میکند. این فریمورک بر اساس الگوی MVC (Model View Controller) ساخته شده و در جنگو به آن MTV (Model Template View) گفته میشود.
چرا جنگو را انتخاب کنیم؟
✅ توسعهی سریع: جنگو بسیاری از قابلیتهای موردنیاز را از قبل دارد، بنابراین نیازی به کدنویسی از صفر نیست.
✅ امنیت بالا: جنگو در برابر حملات رایج وب (SQL Injection، XSS، CSRF) مقاوم است.
✅ مقیاسپذیری: از سایتهای کوچک گرفته تا پروژههای بزرگ مانند اینستاگرام و پینترست از جنگو استفاده میکنند.
✅ یکپارچگی با پایگاهداده: پشتیبانی از PostgreSQL، MySQL، SQLite، MongoDB و دیگر دیتابیسها.
آموزش نصب جنگو
قبل از هر چیز باید پایتون را روی سیستم خود نصب کنید. سپس، یک محیط مجازی ایجاد کرده و جنگو را نصب میکنیم.
۱. نصب پایتون و ایجاد محیط مجازی
https://gist.github.com/seyedahmaddv/47aa76326d3a1ee39ba70600ef2eee85
۲. نصب جنگو
pip install django
برای اطمینان از نصب صحیح، دستور زیر را اجرا کنید:
django admin version
ایجاد یک پروژه در جنگو
۱. ایجاد پروژه جدید
django admin startproject myproject
cd myproject
ساختار پروژه:
myproject/
│── manage py
│── myproject/
│ ├── __init__ py
│ ├── settings py # تنظیمات اصلی پروژه
│ ├── urls py # مدیریت مسیرها
│ ├── asgi py
│ ├── wsgi py
۲. اجرای سرور جنگو
python manage py runserver
با اجرای این دستور، سرور لوکال جنگو راهاندازی میشود و میتوانید سایت را در ادرس مربوطه مشاهده کنید.
ساخت یک اپلیکیشن در جنگو
در جنگو، پروژه میتواند چندین اپلیکیشن (App) داشته باشد. برای ساخت یک اپ جدید، دستور زیر را اجرا کنید:
python manage py startapp blog
این دستور پوشهی جدیدی به نام blog/ ایجاد میکند که شامل فایلهای مربوط به اپلیکیشن است:
blog/
│── migrations/
│── __init__ py
│── admin py # مدیریت پنل ادمین
│── apps py
│── models py # تعریف مدلهای دیتابیس
│── tests py
│── views py # تعریف پردازشهای مربوط به درخواستها
تعریف مدل (Database Model) در جنگو
فایل models py را باز کرده و مدل زیر را اضافه کنید:
from django db import models
class Post(models Model):
title = models CharField(max_length=255) # عنوان پست
content = models TextField() # محتوای پست
created_at = models DateTimeField(auto_now_add=True) # زمان انتشار
def __str__(self):
return self title
اجرای مهاجرت دیتابیس
بعد از تعریف مدل، باید مهاجرت دیتابیس را اجرا کنیم:
python manage py makemigrations
python manage py migrate
ایجاد صفحه نمایش دادهها (Views و Templates)
۱. اضافه کردن View در views py
from django shortcuts import render
from models import Post
def home(request):
posts = Post objects all()
return render(request, 'blog/home html', {'posts': posts})
۲. تعریف مسیرها در urls py
فایل urls py را ویرایش کنید و مسیر مربوط به صفحه اصلی را اضافه کنید:
from django urls import path
from views import home
urlpatterns = [
path('', home, name='home'),
]
۳. ایجاد فایل قالب HTML
در پوشه blog/ یک پوشه به نام templates/blog/ ایجاد کنید و یک فایل home html بسازید:
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF 8">
<title>بلاگ</title>
</head>
<body>
<h1>لیست مقالات</h1>
<ul>
{% for post in posts %}
<li>{{ post title }} {{ post created_at }}</li>
{% endfor %}
</ul>
</body>
</html>
مدیریت پنل ادمین در جنگو
جنگو یک پنل مدیریت داخلی دارد که به شما اجازه میدهد محتوای سایت را بدون نیاز به کدنویسی مدیریت کنید.
۱. ایجاد حساب ادمین
python manage py createsuperuser
سپس اطلاعات ورود را وارد کنید و سرور را اجرا کنید:
python manage py runserver
حالا به آدرس /admin زیر بروید و با نام کاربری و رمز عبور خود وارد شوید:
۲. ثبت مدلها در پنل ادمین
برای اینکه مدل Post در پنل ادمین نمایش داده شود، فایل admin py را ویرایش کنید:
from django contrib import admin
from models import Post
admin site register(Post)
جمعبندی
🔹 جنگو یک فریمورک سریع، امن و مقیاسپذیر برای توسعه وب با پایتون است.
🔹 با جنگو میتوان سایتهای شرکتی، وبلاگ، فروشگاه اینترنتی و حتی شبکههای اجتماعی طراحی کرد.
🔹 جنگو شامل ابزارهای آماده برای مدیریت دیتابیس، احراز هویت کاربران و پنل مدیریت است.
🔹 اگر به دنبال توسعه سایتهای مدرن و بهینهشده برای سئو هستید، Next js و React گزینههای قدرتمندتری برای فرانتاند هستند.
📌 سوال یا پروژهای دارید؟ من میتوانم برای شما یک سایت حرفهای با Next js، React یا حتی جنگو طراحی کنم. 🚀
محتوای کامل را با کدهای خوانا و قابل کپی در ریپازیتوری گیت هاب من به لینک زیر ببینید. متاسفانه در هنگام نوشتن این پست، عملکرد سیستم تشخیص پست تبلیغاتی ویرگول، تمام بسته ها و فایلهای پایتون رو به عنوان لینک تشخیص میده و امکان تغییرات وجود ندارد.
https://github.com/seyedahmaddv/Djangotutorial/

مطلبی دیگر از این انتشارات
چرا طراحی سایت ریسپانسیو برای کسبوکار شما حیاتی است؟
مطلبی دیگر از این انتشارات
برترین مزایای استفاده از ریاکت و نکست جیاس در طراحی سایتهای تعاملی
مطلبی دیگر از این انتشارات
تجربه کاربری بهتر با ریاکت و نکست جیاس: چرا باید انتخاب شما باشد؟