البرمجة

تعلم Django: بناء موقع ويب لإدارة مكتبة بسهولة

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

فهم أساسيات Django:

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

البداية: تكوين المشروع والتطبيق:

  1. تثبيت Django:
    قبل البدء، يجب أن يكون Django مثبتًا على نظام الكمبيوتر الخاص بك. يمكن تنصيبه بسهولة باستخدام أمر الإدارة pip.

    bash
    pip install Django
  2. إنشاء مشروع Django:
    بعد التثبيت، يمكنك إنشاء مشروع Django جديد باستخدام الأمر التالي:

    bash
    django-admin startproject mylibrary

    حيث “mylibrary” هو اسم المشروع الذي يمكنك تغييره حسب تفضيلاتك.

  3. إضافة تطبيق Django:
    في Django، يتم تنظيم المشروعات إلى تطبيقات. لإضافة تطبيق، استخدم الأمر:

    bash
    cd mylibrary python manage.py startapp books

    هنا، قمنا بإنشاء تطبيق يسمى “books”، والذي سنستخدمه لإدارة المكتبة.

تعريف النماذج وقاعدة البيانات:

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

  1. تعريف نموذج الكتاب:
    في ملف models.py داخل تطبيق “books”، قم بتعريف نموذج لتمثيل الكتب:

    python
    from django.db import models class Book(models.Model): title = models.CharField(max_length=200) author = models.CharField(max_length=100) publication_date = models.DateField() def __str__(self): return self.title
  2. عمليات التحديث وتطبيق التغييرات:
    بعد تعريف النموذج، يجب تنفيذ بعض العمليات لتطبيق التغييرات على قاعدة البيانات.

    bash
    python manage.py makemigrations python manage.py migrate

إنشاء واجهة المستخدم:

الآن، سنقوم بإنشاء واجهة مستخدم بسيطة باستخدام Django Templates وViews.

  1. إنشاء قالب HTML:
    قم بإنشاء مجلد “templates” داخل تطبيق “books”، وأضف ملف HTML لعرض الكتب.

    html
    html> <html> <head> <title>My Librarytitle> head> <body> <h1>My Book Libraryh1> <ul> {% for book in books %} <li>{{ book.title }} by {{ book.author }}li> {% endfor %} ul> body> html>
  2. تعريف العرض (View):
    في ملف views.py، قم بتعريف عرض لعرض قائمة الكتب.

    python
    from django.shortcuts import render from .models import Book def book_list(request): books = Book.objects.all() return render(request, 'books/book_list.html', {'books': books})
  3. توجيه الطلبات (URLs):
    في ملف urls.py في تطبيق “books”، قم بتوجيه الطلبات إلى العرض.

    python
    from django.urls import path from .views import book_list urlpatterns = [ path('books/', book_list, name='book_list'), ]

تشغيل الخادم ورؤية النتائج:

قم بتشغيل الخادم باستخدام الأمر:

bash
python manage.py runserver

واذهب إلى http://127.0.0.1:8000/books/ في متصفح الويب الخاص بك لرؤية قائمة الكتب.

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

المزيد من المعلومات

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

إضافة وظيفة إضافة الكتب:

لنقوم بإضافة قدرة إضافة كتب جديدة إلى المكتبة، سنقوم بتعديل النموذج، العرض، والقالب.

  1. تعديل نموذج الكتاب:
    في ملف models.py، سنضيف حقلًا جديدًا لتاريخ الإضافة:

    python
    class Book(models.Model): title = models.CharField(max_length=200) author = models.CharField(max_length=100) publication_date = models.DateField() added_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
  2. تحديث عرض الكتب:
    في views.py، سنقوم بتعديل العرض ليدعم إضافة الكتب الجديدة وعرضها:

    python
    from django.shortcuts import render, redirect from .models import Book from .forms import BookForm def book_list(request): books = Book.objects.all() return render(request, 'books/book_list.html', {'books': books}) def add_book(request): if request.method == 'POST': form = BookForm(request.POST) if form.is_valid(): form.save() return redirect('book_list') else: form = BookForm() return render(request, 'books/add_book.html', {'form': form})
  3. تحسين قالب إضافة الكتب:
    في book_list.html، سنقوم بإضافة رابط للانتقال إلى صفحة إضافة الكتب:

    html
    <body> <h1>My Book Libraryh1> <ul> {% for book in books %} <li>{{ book.title }} by {{ book.author }}li> {% endfor %} ul> <a href="{% url 'add_book' %}">Add a Booka> body>

إنشاء نموذج إضافة الكتب:

لتسهيل عملية إدخال البيانات، سنقوم بإنشاء نموذج Django لإضافة الكتب.

  1. تعريف نموذج Django:
    في ملف forms.py داخل تطبيق “books”:

    python
    from django import forms from .models import Book class BookForm(forms.ModelForm): class Meta: model = Book fields = ['title', 'author', 'publication_date']

تحديث الروابط والقوالب:

لتوجيه الطلبات للواجهة الجديدة واستخدام النموذج، سنقوم بتحديث الروابط والقوالب.

  1. تحديث الروابط (urls.py):
    في ملف urls.py داخل تطبيق “books”:

    python
    from django.urls import path from .views import book_list, add_book urlpatterns = [ path('books/', book_list, name='book_list'), path('add/', add_book, name='add_book'), ]
  2. إنشاء صفحة إضافة الكتب:
    في ملف add_book.html داخل مجلد “templates/books”:

    html
    html> <html> <head> <title>Add a Booktitle> head> <body> <h2>Add a New Bookh2> <form method="post" action="{% url 'add_book' %}"> {% csrf_token %} {{ form.as_p }} <button type="submit">Add Bookbutton> form> <a href="{% url 'book_list' %}">Back to Book Lista> body> html>

اختبار التطبيق:

بعد تحديثاتنا، قم بتشغيل الخادم باستخدام python manage.py runserver وقم بزيارة http://127.0.0.1:8000/books/ لرؤية القائمة الحالية للكتب. يمكنك الآن أيضًا الانتقال إلى صفحة إضافة الكتب باستخدام الرابط المتاح.

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

زر الذهاب إلى الأعلى