نمي أعمالك عبر الإنترنت

خدمات ومنتجات واستضافة وخودام لينكي سوفت

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

تطوير الويب باستخدام Django

مقدمة في Django

تم تصميم Django مع التركيز على التطوير السريع والبساطة. إنه إطار عمل "مزوّد بكل شيء"، مما يعني أنه يأتي مع العديد من الميزات المدمجة، لذا لا تحتاج إلى الاعتماد بشكل كبير على المكتبات الخارجية لتشغيل مشروعك. من ORM القوي (الترابط بين الكائنات والعلاقات) إلى واجهة المصادقة والإدارة المدمجة، يبسط Django تطوير الويب بشكل كبير.

لماذا تختار Django لتطوير الويب؟

  • التطوير السريع: فلسفة Django تركز على القدرة على تطوير التطبيقات بسرعة دون التضحية بجودة الكود أو مبادئ التصميم.
  • الأمان: يوفر Django حماية مدمجة ضد الثغرات الشائعة في الويب مثل حقن SQL وXSS وCSRF وclickjacking.
  • قابلية التوسع: يمكن لـ Django التوسع بسهولة من المشاريع الشخصية الصغيرة إلى التطبيقات الكبيرة على نطاق المؤسسات.
  • دعم المجتمع: لدى Django مجتمع كبير ونشط، مما يضمن أنك ستجد مكتبات وتوثيق ومساعدة مجتمعية بسهولة.
  • واجهة الإدارة المدمجة: تعد واجهة الإدارة في Django أداة قوية تساعد المطورين والمديرين في إدارة البيانات والتطبيقات بأقل قدر من الإعداد.

إعداد Django: دليل خطوة بخطوة

بدء استخدام Django بسيط. إليك كيفية إعداد أول مشروع Django لك من البداية:

1. تثبيت Django

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

pip install django

يقوم هذا الأمر بتثبيت Django عبر مدير الحزم الخاص بـ Python، pip.

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

بمجرد تثبيت Django، يمكنك إنشاء مشروع Django جديد عن طريق تشغيل الأمر التالي:

django-admin startproject myproject

ينشئ هذا الأمر مجلدًا جديدًا، "myproject"، يحتوي على هيكل الملفات الأساسي لمشروع Django. يتضمن الملفات الرئيسية مثل settings.py وurls.py وأخرى.

3. تشغيل خادم تطوير Django

بعد ذلك، انتقل إلى دليل مشروعك الجديد وقم بتشغيل خادم التطوير:

python manage.py runserver

الآن، إذا فتحت متصفحك وانتقلت إلى http://127.0.0.1:8000/، سترى صفحة الترحيب الافتراضية لـ Django. هذا يؤكد أن مشروعك تم إعداده بشكل صحيح وأن Django يعمل.

هيكل مشروع Django

عندما تنشئ مشروع Django جديد، يتم إنشاء العديد من الملفات والمجلدات المهمة:

4. فهم الملفات الرئيسية في Django

  • settings.py: يحتوي هذا الملف على جميع إعدادات وتكوينات مشروعك، بما في ذلك إعداد قاعدة البيانات، والمضيفين المسموح بهم، والتطبيقات المثبتة، والوسائط، والمزيد.
  • urls.py: يتعامل هذا الملف مع توجيه URL، حيث يربط بين URLs وviews.
  • wsgi.py: يعد هذا الملف نقطة الدخول لخوادم الويب المتوافقة مع WSGI لتقديم مشروعك في بيئة الإنتاج.

5. بنية MVT في Django

يتبع Django بنية Model-View-Template (MVT)، وهي نسخة طفيفة من نمط MVC التقليدي (Model-View-Controller):

  • النموذج: يمثل طبقة البيانات. تقوم النماذج بتحديد هيكل قاعدة بياناتك وكيفية تخزين واسترجاع البيانات.
  • العرض: يتعامل مع المنطق التجاري ويتفاعل مع النماذج. تعرض العروض الطلبات الواردة وتعيد الاستجابة المناسبة، وغالبًا ما تعرض القوالب.
  • القالب: يمثل طبقة العرض. تتحمل القوالب مسؤولية عرض محتوى HTML بشكل ديناميكي، مع دمج البيانات المرسلة من العروض.

إنشاء أول تطبيق Django لك

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

6. إنشاء تطبيق جديد

لإنشاء تطبيق جديد ضمن مشروعك، قم بتشغيل الأمر التالي:

python manage.py startapp myapp

ينشئ هذا الأمر بنية دليل جديدة لتطبيقك، بما في ذلك ملفات مثل models.py وviews.py وadmin.py.

7. تعريف النماذج

ملف models.py هو المكان الذي تحدد فيه هيكل قاعدة بياناتك. يقوم ORM الخاص بـ Django بربط فئات Python بجداول قاعدة البيانات، مما يتيح لك التفاعل مع قاعدة البيانات باستخدام كود Python بدلاً من كتابة استعلامات SQL مباشرة. إليك مثال لنموذج بسيط لمشاركة مدونة:


from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')

8. تسجيل النماذج في واجهة الإدارة

يأتي Django مع واجهة إدارة مدمجة تتيح لك إدارة بيانات تطبيقك. لجعل نماذجك متاحة في واجهة الإدارة، تحتاج إلى تسجيلها في ملف admin.py:


from django.contrib import admin
from .models import BlogPost

admin.site.register(BlogPost)

بعد تسجيل نماذجك، يمكنك إدارتها في لوحة إدارة Django عن طريق الانتقال إلى http://127.0.0.1:8000/admin/ وتسجيل الدخول.

9. توجيه URL

يسمح نظام توجيه URL في Django بربط URLs بعروض محددة. على سبيل المثال، قد ترغب في أن تعرض URL /blog/ قائمة بمشاركات المدونة. يتم ذلك في ملف urls.py في تطبيقك. إليك مثال:


from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('post//', views.post_detail, name='post_detail'),
]

العمل مع العروض في Django

تتحمل العروض مسؤولية معالجة طلبات HTTP الواردة وإعادة الاستجابات. تتفاعل مع نماذجك لاسترجاع البيانات وتمريرها إلى القالب للعرض.

10. إنشاء عرض لعرض مشاركات المدونة

إليك مثال على عرض يسترجع جميع مشاركات المدونة من قاعدة البيانات ويعرضها على صفحة:


from django.shortcuts import render
from .models import BlogPost

def index(request):
    posts = BlogPost.objects.all()
    return render(request, 'index.html', {'posts': posts})

يستعلم هذا العرض قاعدة البيانات للحصول على جميع مشاركات المدونة ويمررها إلى قالب index.html، الذي يقوم بعرض HTML.

قوالب Django: عرض HTML

تتحمل القوالب مسؤولية عرض HTML في Django. تتيح لك تضمين كود يشبه Python في ملفات HTML الخاصة بك لإنشاء محتوى ديناميكي بناءً على البيانات المرسلة من العرض.

11. إنشاء قالب لمشاركات المدونة

ضمن تطبيقك، أنشئ دليلًا جديدًا يسمى templates وداخلها، أنشئ ملفًا باسم index.html. إليك قالب بسيط يعرض قائمة بمشاركات المدونة:

مشاركات المدونة

    {% for post in posts %}
  • {{ post.title }} - {{ post.pub_date }}
  • {% endfor %}

العمل مع النماذج في Django

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

12. إنشاء نموذج لإرسال مشاركات المدونة

لإنشاء نموذج، يمكنك استخدام وحدة forms الخاصة بـ Django. إليك نموذجًا مثالياً لإرسال مشاركة جديدة في المدونة:


from django import forms
from .models import BlogPost

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

13. التعامل مع تقديم النماذج

في عرضك، تحتاج إلى التعامل مع تقديم النموذج، والتحقق من صحة البيانات، وحفظها في قاعدة البيانات. إليك مثالاً على عرض يتعامل مع تقديم مشاركة مدونة:


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

def new_post(request):
    if request.method == "POST":
        form = BlogPostForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('index')
    else:
        form = BlogPostForm()
    return render(request, 'new_post.html', {'form': form})

المصادقة وإدارة المستخدمين في Django

يأتي Django مع نظام مصادقة قوي يتعامل مع تسجيل المستخدمين، وتسجيل الدخول، وتسجيل الخروج، وإدارة كلمات المرور. كما يدعم أيضًا أذونات المستخدمين والمجموعات للتحكم في الوصول.

14. إعداد مصادقة المستخدمين

لتفعيل المصادقة في Django، تأكد من أن django.contrib.auth مدرجة في INSTALLED_APPS. يوفر Django أيضًا عروضًا مدمجة للتعامل مع تسجيل الدخول وتسجيل الخروج، والتي يمكنك إضافتها بسهولة إلى ملف urls.py الخاص بك:


from django.urls import path
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]

15. تقييد الوصول إلى العروض

لتقييد بعض العروض للمستخدمين المصادق عليهم فقط، استخدم الزخرفة @login_required. إليك كيفية تطبيقها على عرض:


from django.contrib.auth.decorators import login_required

@login_required
def dashboard(request):
    return render(request, 'dashboard.html')

نشر تطبيق Django الخاص بك

بمجرد أن تكون قد طورت تطبيق Django الخاص بك، الخطوة التالية هي نشره في بيئة الإنتاج. تدعم العديد من المنصات نشر تطبيقات Django، بما في ذلك Heroku وDigitalOcean وAWS.

16. نشر Django على Heroku

Heroku هو أحد أسهل المنصات لنشر تطبيقات Django. إليك نظرة عامة على الخطوات:

  1. تثبيت CLI الخاص بـ Heroku.
  2. تهيئة مستودع Git في دليل مشروعك.
  3. إنشاء تطبيق Heroku جديد عن طريق تشغيل heroku create.
  4. ادفع كودك إلى Heroku باستخدام git push heroku master.
  5. تهيئة متغيرات البيئة مثل ALLOWED_HOSTS وDATABASE_URL.

17. توسيع تطبيقات Django

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

18. التخزين المؤقت في Django

يمكن أن يحسن التخزين المؤقت بشكل كبير أداء تطبيق Django الخاص بك عن طريق تخزين نتائج استعلامات قاعدة البيانات المكلفة وتقديمها بشكل أسرع. يدعم Django خلفيات تخزين مؤقت مختلفة، بما في ذلك Memcached وRedis. لتمكين التخزين المؤقت، أضف الإعدادات التالية إلى settings.py:


CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

ميزات Django المتقدمة

19. Django Rest Framework (DRF)

إذا كنت تبني واجهة برمجة تطبيقات (API)، فإن Django Rest Framework (DRF) هو أداة أساسية. يوفر مجموعة أدوات قوية لبناء واجهات برمجة التطبيقات RESTful، بما في ذلك التسلسل، والمصادقة، وإدارة الأذونات.

20. نماذج المستخدمين المخصصة

يسمح لك Django بإنشاء نماذج مستخدمين مخصصة إذا كنت بحاجة إلى توسيع نموذج المستخدم الافتراضي مع حقول أو وظائف إضافية. يمكنك تعريف نموذج مستخدم مخصص عن طريق التوريث من AbstractUser أو AbstractBaseUser.

الخاتمة

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

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

تمنياتنا لك برمجة ممتعة مع Django!

موارد مهمة لتطوير الويب باستخدام Django

هل كانت المقالة مفيدة ؟ 0 أعضاء وجدوا هذه المقالة مفيدة (0 التصويتات)

البحث في قاعدة المعرفة

مشاركة