دليل شامل لتطوير تطبيقات الويب باستخدام Django: الأساسيات والخطوات العملية للمبتدئين

Amine
26/08/2024

إطار Django هو أحد أشهر أطر العمل لتطوير تطبيقات الويب باستخدام لغة بايثون. يتميز بسرعته وسهولة استخدامه وتوفير الكثير من الأدوات التي تساعد على تسريع عملية تطوير التطبيقات. في هذا الدليل، سنستعرض أساسيات Django للمبتدئين مع خطوات عملية لبناء تطبيق ويب بسيط.

1. ما هو Django؟

Django هو إطار عمل مفتوح المصدر لبرمجة تطبيقات الويب يعتمد على لغة بايثون. يهدف إلى تسهيل بناء تطبيقات الويب عن طريق توفير العديد من الأدوات المدمجة مثل نظام إدارة قواعد البيانات، واجهة المستخدم، ونظام المصادقة. يعمل Django على تعزيز أمان التطبيقات والحد من تكرار الأكواد، مما يجعله خياراً ممتازاً للمطورين لبناء تطبيقات ويب قوية وسريعة.

2. إعداد بيئة العمل

لبدء العمل مع Django، تحتاج إلى تثبيت بايثون وDjango على جهازك. تأكد من تثبيت أحدث إصدار من بايثون لضمان التوافق مع مكتبات Django الحديثة.

تثبيت Python

يمكنك تنزيل وتثبيت بايثون من الموقع الرسمي: python.org. تأكد من إضافة بايثون إلى متغيرات النظام أثناء التثبيت.

تثبيت Django

بعد تثبيت بايثون، يمكنك تثبيت Django باستخدام أداة pip من خلال تنفيذ الأمر التالي في الطرفية:

pip install django

للتحقق من تثبيت Django بنجاح، يمكنك تشغيل الأمر:

django-admin --version

إنشاء مشروع Django جديد

لإنشاء مشروع Django جديد، استخدم الأمر التالي:

django-admin startproject myproject

بعد إنشاء المشروع، انتقل إلى المجلد الجديد وقم بتشغيل السيرفر المحلي باستخدام الأوامر التالية:

cd myproject
python manage.py runserver

افتح متصفحك وزر العنوان http://127.0.0.1:8000/ لترى صفحة الترحيب الافتراضية لـ Django.

3. إنشاء تطبيق داخل المشروع

في Django، يتم تقسيم المشروع إلى عدة تطبيقات صغيرة لتسهيل الإدارة والصيانة. لإنشاء تطبيق جديد، استخدم الأمر التالي:

python manage.py startapp blog

سيتم إنشاء مجلد جديد باسم blog يحتوي على الملفات الأساسية للتطبيق مثل models.py، views.py، و admin.py.

4. إنشاء أول نموذج (Model)

النماذج في Django تمثل هيكل قواعد البيانات وتعريف البيانات التي سيتم تخزينها. يمكنك إنشاء نموذج جديد داخل ملف models.py في تطبيق blog كما يلي:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    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

يمكنك الآن تسجيل النموذج في لوحة الإدارة لتتمكن من إدارة المدونات من خلالها. افتح ملف admin.py وأضف الكود التالي:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

لإنشاء مستخدم إداري، استخدم الأمر:

python manage.py createsuperuser

اتبع التعليمات لإكمال إنشاء المستخدم الإداري، ثم اذهب إلى http://127.0.0.1:8000/admin/ لتسجيل الدخول وإدارة المشاركات.

5. إنشاء واجهة المستخدم (Views)

لإظهار البيانات في المتصفح، تحتاج إلى إنشاء واجهة المستخدم. يمكنك تعريف عرض بسيط داخل ملف views.py في تطبيق blog كما يلي:

from django.shortcuts import render
from .models import Post

def home(request):
    posts = Post.objects.all()
    return render(request, 'blog/home.html', {'posts': posts})

ثم أنشئ قالب HTML لعرض المشاركات. أنشئ مجلد templates/blog داخل تطبيق blog وأضف ملف home.html مع المحتوى التالي:

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <title>مدونتي</title>
</head>
<body>
    <h1>مرحباً بك في مدونتي!</h1>
    <ul>
        {% for post in posts %}
            <li>
                <h2>{{ post.title }}</h2>
                <p>{{ post.content }}</p>
                <small>تم النشر في {{ post.created_at }}</small>
            </li>
        {% endfor %}
    </ul>
</body>
</html>

أخيراً، قم بربط العرض مع عنوان URL. افتح ملف urls.py في مجلد المشروع myproject وأضف المسار التالي:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

ثم أنشئ ملف urls.py داخل تطبيق blog وأضف الكود التالي:

from django.urls import path
from . import views

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

6. إضافة نماذج الإدخال (Forms)

لتسهيل إضافة مشاركات جديدة، يمكنك إنشاء نموذج إدخال. أولاً، أنشئ نموذجًا في ملف forms.py داخل تطبيق blog:

from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'content']

ثم، أضف عرضًا للتعامل مع النموذج في ملف views.py:

from django.shortcuts import render, redirect
from .forms import PostForm

def add_post(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')
    else:
        form = PostForm()
    return render(request, 'blog/add_post.html', {'form': form})

أنشئ قالب add_post.html في مجلد templates/blog:

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <title>إضافة مشاركة جديدة</title>
</head>
<body>
    <h1>إضافة مشاركة جديدة</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">حفظ</button>
    </form>
    <a href="{% url 'home' %}">العودة للصفحة الرئيسية</a>
</body>
</html>

وأضف المسار إلى ملف urls.py في تطبيق blog:

urlpatterns = [
    path('', views.home, name='home'),
    path('add/', views.add_post, name='add_post'),
]

الآن، يمكنك زيارة http://127.0.0.1:8000/add/ لإضافة مشاركات جديدة إلى مدونتك.

7. تحسين واجهة المستخدم باستخدام Bootstrap

لتحسين تصميم واجهة المستخدم، يمكنك دمج إطار عمل Bootstrap. أضف الرابط التالي إلى قسم <head> في قوالبك:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">

ثم قم بتعديل القوالب لاستخدام فئات Bootstrap لتحسين المظهر.

8. نشر التطبيق

بعد تطوير تطبيقك واختباره محليًا، يمكنك نشره على خادم ويب مثل Heroku أو أي خدمة استضافة تدعم Django. تأكد من إعداد إعدادات الإنتاج بشكل صحيح، بما في ذلك إعداد قواعد البيانات والأمان.

الخاتمة

Django هو إطار عمل قوي ومرن يتيح لك بناء تطبيقات ويب بسرعة وكفاءة. مع الوقت والممارسة، يمكنك تعلم المزيد من الميزات المتقدمة مثل النماذج الديناميكية، إدارة المستخدمين، تحسينات الأمان، وتحسين أداء التطبيق. ابدأ بمشاريع صغيرة وتدرج في التعلم لتحقيق أفضل النتائج.

التعليقات

اترك تعليقاً