تطبيق عملي لتعلم جانغو – الجزء الرابع: إنشاء صفحة المكتبة الرئيسية
يُعدُّ تطوير التطبيقات باستخدام إطار عمل جانغو من الأساليب الشائعة والمثيرة في عالم البرمجة الحديثة، حيث يوفر إطار جانغو مجموعة من الأدوات والميزات التي تسهل بناء تطبيقات الويب بشكل سريع وآمن. في هذا الجزء الرابع من سلسلة تعلم جانغو، سنغطي كيفية إنشاء صفحة المكتبة الرئيسية لموقع إلكتروني باستخدام هذا الإطار الشهير.
ما هو جانغو؟
جانغو هو إطار عمل مفتوح المصدر يستخدم لغة البرمجة بايثون لبناء تطبيقات الويب. يتميز جانغو بتركيزه على تسريع عملية التطوير من خلال توفير أدوات جاهزة لتسهيل بناء النماذج، قواعد البيانات، واجهات المستخدم، والعديد من الميزات الأخرى. من خلال تنظيم عملية التطوير بشكل منطقي، يجعل جانغو إنشاء التطبيقات سهلًا وآمنًا وفعالًا.
كيفية البدء في مشروع جانغو
قبل أن نبدأ في بناء صفحة المكتبة الرئيسية، علينا أولاً إنشاء مشروع جانغو جديد وتحديد هيكل المجلدات الخاص به. يمكن القيام بذلك من خلال اتباع هذه الخطوات:
-
تثبيت جانغو: أول خطوة هي التأكد من أنك قد قمت بتثبيت جانغو. يمكن تثبيته باستخدام مدير الحزم
pip:bashpip install django -
إنشاء مشروع جانغو جديد: بعد تثبيت جانغو، نحتاج إلى إنشاء مشروع جديد. لنفترض أن اسم المشروع هو “LibraryApp”. يمكن إنشاء المشروع باستخدام الأمر التالي:
bashdjango-admin startproject LibraryApp -
تشغيل الخادم المحلي: يمكننا الآن الانتقال إلى المجلد الخاص بالمشروع وتشغيل الخادم المحلي لمعاينة التطبيق:
bashcd LibraryApp python manage.py runserverعند زيارة
http://127.0.0.1:8000في المتصفح، يجب أن ترى الصفحة الافتراضية الخاصة بجانغو.
إنشاء تطبيق “المكتبة”
بمجرد أن يكون لديك مشروع جانغو يعمل، ستحتاج إلى إضافة تطبيق (App) داخل المشروع يتعامل مع خصائص المكتبة. لإنشاء تطبيق جديد، يمكن استخدام الأمر التالي:
bashpython manage.py startapp library
سيقوم جانغو بإنشاء مجلد جديد باسم library يحتوي على هيكل المجلدات الضروري لإضافة التطبيقات إلى المشروع.
تعديل إعدادات المشروع لإضافة التطبيق
الخطوة التالية هي إضافة التطبيق الذي أنشأته إلى إعدادات المشروع. افتح ملف settings.py الموجود في مجلد LibraryApp، ثم ابحث عن قسم INSTALLED_APPS وأضف اسم التطبيق الجديد:
pythonINSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'library', # إضافة التطبيق الجديد
]
إنشاء نموذج الكتاب
الخطوة التالية هي تصميم نموذج (Model) لتمثيل الكتب في المكتبة. ستحتاج إلى تحديد الحقول التي سيتم تخزينها في قاعدة البيانات، مثل العنوان، المؤلف، وتاريخ النشر. في ملف models.py داخل مجلد التطبيق library، أضف الكود التالي:
pythonfrom django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
publication_date = models.DateField()
description = models.TextField()
def __str__(self):
return self.title
بعد إنشاء النموذج، تحتاج إلى تطبيق التغييرات على قاعدة البيانات باستخدام الأمر:
bashpython manage.py makemigrations python manage.py migrate
إنشاء عرض لعرض الكتب
الآن بعد أن تم تحديد النموذج، نحتاج إلى إنشاء عرض (View) يعرض قائمة من الكتب على الصفحة الرئيسية للمكتبة. في ملف views.py داخل تطبيق library، أضف الكود التالي:
pythonfrom django.shortcuts import render
from .models import Book
def library_home(request):
books = Book.objects.all()
return render(request, 'library/home.html', {'books': books})
هنا، نستخدم دالة render لعرض القوالب (Templates) في HTML، حيث نقوم بتمرير جميع الكتب المخزنة في قاعدة البيانات إلى القالب لعرضها.
إنشاء قالب HTML لصفحة المكتبة الرئيسية
الآن، سنحتاج إلى إنشاء قالب HTML لعرض الكتب في صفحة المكتبة الرئيسية. داخل مجلد التطبيق library، أنشئ مجلدًا جديدًا باسم templates ثم مجلد داخلي باسم library. داخل هذا المجلد، أنشئ ملفًا جديدًا يسمى home.html وأضف الكود التالي:
htmlhtml>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>المكتبة الرئيسيةtitle>
head>
<body>
<h1>مرحبا بكم في المكتبةh1>
<ul>
{% for book in books %}
<li>
<h3>{{ book.title }}h3>
<p>المؤلف: {{ book.author }}p>
<p>تاريخ النشر: {{ book.publication_date }}p>
<p>{{ book.description }}p>
li>
{% empty %}
<li>لا توجد كتب لعرضها حالياً.li>
{% endfor %}
ul>
body>
html>
هذا القالب يقوم بعرض قائمة من الكتب باستخدام جملة for الخاصة بـ Django Template Language، حيث يتم عرض العنوان، المؤلف، تاريخ النشر، والوصف لكل كتاب.
إضافة URL للوصول إلى الصفحة
لنتمكن من الوصول إلى صفحة المكتبة الرئيسية، نحتاج إلى إضافة مسار URL لهذا العرض. في مجلد التطبيق library، افتح ملف urls.py وأضف المسار التالي:
pythonfrom django.urls import path
from . import views
urlpatterns = [
path('', views.library_home, name='library_home'),
]
ثم، في ملف urls.py في المجلد الرئيسي LibraryApp، تأكد من إضافة مسار التطبيق الجديد:
pythonfrom django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('library.urls')),
]
اختبار الصفحة
الآن، بعد أن قمت بإعداد جميع الملفات اللازمة، يمكنك اختبار الصفحة من خلال زيارة http://127.0.0.1:8000 في المتصفح. ستظهر صفحة المكتبة الرئيسية التي تعرض الكتب التي تم تخزينها في قاعدة البيانات.
تحسينات إضافية
-
إضافة نموذج لإدخال الكتب: يمكنك إضافة صفحة خاصة لإدخال الكتب الجديدة في المكتبة باستخدام نموذج (Form).
-
إضافة خاصية البحث: يمكنك إضافة شريط بحث لتمكين المستخدمين من البحث عن الكتب بناءً على العنوان أو المؤلف.
-
إضافة التنسيق باستخدام CSS: يمكنك تحسين مظهر الصفحة باستخدام CSS لجعلها أكثر جاذبية واحترافية.
-
إضافة التوثيق والمصادقة: إذا كنت ترغب في أن يتمكن المستخدمون من إضافة الكتب بأنفسهم، يمكنك إضافة خاصية التوثيق (Login) والمصادقة (Authentication).
الخلاصة
من خلال هذه الخطوات، أنشأت صفحة مكتبة رئيسية باستخدام إطار جانغو. بدأنا بإنشاء مشروع جديد، ثم أنشأنا تطبيقًا خاصًا بالمكتبة، وصممنا نموذجًا لتمثيل الكتب، وأضفنا عرضًا وقالبًا لعرض البيانات، وأخيرًا قمنا بربط جميع هذه المكونات معًا من خلال إعدادات URL.

