القائمة الرئيسية

الصفحات

خطوات برمجة نظام إدارة طلاب باستخدام Python Django

How to Code، Student Management System Using Python Django، نشر تطبيقات Django، خادم Gunicorn، خادم Nginx، تكوين Nginx لـ Django، جمع الملفات الثابتة Django، نشر Django على Linux، حفظ بيانات Django، تخزين بيانات الطلاب Django، تخزين بيانات الدورات Django، تخزين بيانات التسجيل Django، Django ORM، Django Admin، إنشاء مستخدم مسؤول Django، إضافة طلاب Django Admin، إضافة دورات Django Admin، مسارات URL Django، تعريف مسارات Django، ربط طرق العرض بمسارات URL Django، طرق عرض Django، قائمة الطلاب Django view، تفاصيل الطالب Django view، إضافة طالب Django view، قائمة الدورات Django view، نماذج Django، إنشاء نماذج Django، نموذج إضافة طالب Django، قوالب Django، إنشاء قوالب Django، قائمة الطلاب Django HTML، تفاصيل الطالب Django HTML، إضافة طالب Django HTML، قائمة الدورات Django HTML، نماذج Django، تعريف نماذج Django، نماذج الطلاب Django، نماذج الدورات Django، نماذج التسجيل Django، إنشاء تغييرات Django، تنفيذ التغييرات Django، برمجة نظام إدارة طلاب بايثون، تطوير نظام تعليمي Django، نظام تسجيل طلاب Django، واجهة مستخدم نظام طلاب Django، نماذج Django للطلاب والدورات، عرض بيانات الطلاب Django، إضافة طلاب Django، حفظ بيانات الطلاب Django، نشر تطبيقات Django التعليمية، بايثون جانغو، برمجة نظام إدارة طلاب باستخدام Python Django، Python Django برمجة نظام إدارة طلاب باستخدام Python Django، خطوات برمجة نظام إدارة طلاب باستخدام Python Django، بايثون جانغو، نشر Django على Linux، برمجة نظام إدارة طلاب بايثون، Django ORM، إنشاء نماذج Django،




خطوات برمجة نظام إدارة طلاب باستخدام Python Django



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


خطوات بناء نظام إدارة طلاب باستخدام Python Django



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

الخطوة 1: إعداد بيئة التطوير وإنشاء مشروع Django : 

* تأكد من تثبيت Python و pip على جهازك. ثم قم بتثبيت Django:
pip install django
--

* أنشئ مشروع Django جديدًا باسم student_management_system :
django-admin startproject student_management_system
cd student_management_system
--

* أنشئ تطبيقًا داخل المشروع باسم students :
python manage.py startapp students
--

الخطوة 2: تعريف نماذج البيانات (Models)

في ملف students/models.py، سنقوم بتعريف نماذج البيانات
 الأساسية للطلاب والدورات والتسجيلات:

        


from django.db import models

class Student(models.Model):
    student_id = models.CharField(max_length=20, unique=True)
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    email = models.EmailField(unique=True)
    phone_number = models.CharField(max_length=20, blank=True, null=True)
    date_of_birth = models.DateField()

    def __str__(self):
        return f"{self.first_name} {self.last_name} ({self.student_id})"

class Course(models.Model):
    course_code = models.CharField(max_length=10, unique=True)
    course_name = models.CharField(max_length=200)
    description = models.TextField(blank=True, null=True)
    credits = models.IntegerField(default=3)

    def __str__(self):
        return f"{self.course_code} - {self.course_name}"

class Enrollment(models.Model):
    student = models.ForeignKey(Student, on_delete=models.CASCADE)
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    enrollment_date = models.DateField(auto_now_add=True)
    grade = models.CharField(max_length=2, blank=True, null=True)

    class Meta:
        unique_together = ('student', 'course') # منع تسجيل الطالب في نفس الدورة مرتين

    def __str__(self):
        return f"{self.student} enrolled in {self.course}"



* أضف تطبيق students إلى قائمة INSTALLED_APPS في ملف
 student_management_system/settings.py :

Python

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'students', # إضافة تطبيق students هنا
]
--

* قم بإنشاء التغييرات وتنفيذها :
python manage.py makemigrations students
python manage.py migrate
--

الخطوة 3: إنشاء واجهة المستخدم (Templates)

* أنشئ مجلدًا باسم templates داخل مجلد تطبيق students. ثم أنشئ ملفات HTML التالية :

students/templates/students/student_list.html : 
لعرض قائمة الطلاب :

        

HTML

<!DOCTYPE html>
<html>
<head>
    <title>قائمة الطلاب</title>
</head>
<body>
    <h1>قائمة الطلاب</h1>
    <table>
        <thead>
            <tr>
                <th>رقم الطالب</th>
                <th>الاسم</th>
                <th>البريد الإلكتروني</th>
                <th>تاريخ الميلاد</th>
                <th>الخيارات</th>
            </tr>
        </thead>
        <tbody>
            {% for student in students %}
                <tr>
                    <td>{{ student.student_id }}</td>
                    <td>{{ student.first_name }} {{ student.last_name }}</td>
                    <td>{{ student.email }}</td>
                    <td>{{ student.date_of_birth }}</td>
                    <td><a href="{% url 'student_detail' student.id %}">تفاصيل</a></td>
                </tr>
            {% empty %}
                <tr><td colspan="5">لا يوجد طلاب مسجلين.</td></tr>
            {% endfor %}
        </tbody>
    </table>
    <p><a href="{% url 'add_student' %}">إضافة طالب جديد</a></p>
</body>
</html>


* students/templates/students/student_detail.html :




 لعرض تفاصيل الطالب والدورات المسجل بها : 


        

HTML

<!DOCTYPE html>
<html>
<head>
    <title>تفاصيل الطالب</title>
</head>
<body>
    <h1>تفاصيل الطالب</h1>
    <p>رقم الطالب: {{ student.student_id }}</p>
    <p>الاسم: {{ student.first_name }} {{ student.last_name }}</p>
    <p>البريد الإلكتروني: {{ student.email }}</p>
    <p>تاريخ الميلاد: {{ student.date_of_birth }}</p>

    <h2>الدورات المسجل بها</h2>
    {% if enrollments %}
        <ul>
            {% for enrollment in enrollments %}
                <li>{{ enrollment.course.course_name }} ({{ enrollment.course.course_code }}) - تاريخ التسجيل: {{ enrollment.enrollment_date }} {% if enrollment.grade %} - العلامة: {{ enrollment.grade }}{% endif %}</li>
            {% endfor %}
        </ul>
    {% else %}
        <p>لم يتم تسجيل الطالب في أي دورات حتى الآن.</p>
    {% endif %}
    <p><a href="{% url 'student_list' %}">العودة إلى قائمة الطلاب</a></p>
</body>
</html>



* students/templates/students/add_student.html : 
لنموذج إضافة طالب جديد :

HTML

<!DOCTYPE html>
<html>
<head>
    <title>إضافة طالب جديد</title>
</head>
<body>
    <h1>إضافة طالب جديد</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">حفظ الطالب</button>
    </form>
    <p><a href="{% url 'student_list' %}">العودة إلى قائمة الطلاب</a></p>
</body>
</html>

--

* students/templates/students/course_list.html : لعرض قائمة الدورات :

        

HTML

<!DOCTYPE html>
<html>
<head>
    <title>قائمة الدورات</title>
</head>
<body>
    <h1>قائمة الدورات</h1>
    <table>
        <thead>
            <tr>
                <th>رمز الدورة</th>
                <th>اسم الدورة</th>
                <th>الوصف</th>
                <th>الاعتمادات</th>
            </tr>
        </thead>
        <tbody>
            {% for course in courses %}
                <tr>
                    <td>{{ course.course_code }}</td>
                    <td>{{ course.course_name }}</td>
                    <td>{{ course.description|default:"-" }}</td>
                    <td>{{ course.credits }}</td>
                </tr>
            {% empty %}
                <tr><td colspan="4">لا توجد دورات متاحة.</td></tr>
            {% endfor %}
        </tbody>
    </table>
    <p><a href="#">إضافة دورة جديدة</a> (سيتم تنفيذه لاحقًا)</p>
</body>
</html>


الخطوة 4: إنشاء النماذج (Forms)

* في ملف students/forms.py (إذا لم يكن موجودًا، قم بإنشائه):
Python

from django import forms
from .models import Student

class StudentForm(forms.ModelForm):
    class Meta:
        model = Student
        fields = ['student_id', 'first_name', 'last_name', 'email', 'phone_number', 'date_of_birth']
        widgets = {
            'date_of_birth': forms.DateInput(attrs={'type': 'date'})
        }

--

الخطوة 5: إنشاء طرق العرض (Views)

في ملف students/views.py، سنقوم بإنشاء طرق العرض التي 
تتحكم في منطق التطبيق وتعرض القوالب:

        

Python

from django.shortcuts import render, redirect, get_object_or_404
from .models import Student, Course, Enrollment
from .forms import StudentForm

def student_list(request):
    students = Student.objects.all()
    context = {'students': students}
    return render(request, 'students/student_list.html', context)

def student_detail(request, student_id):
    student = get_object_or_404(Student, id=student_id)
    enrollments = Enrollment.objects.filter(student=student).select_related('course')
    context = {'student': student, 'enrollments': enrollments}
    return render(request, 'students/student_detail.html', context)

def add_student(request):
    if request.method == 'POST':
        form = StudentForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('student_list')
    else:
        form = StudentForm()
    context = {'form': form}
    return render(request, 'students/add_student.html', context)

def course_list(request):
    courses = Course.objects.all()
    context = {'courses': courses}
    return render(request, 'students/course_list.html', context)



الخطوة 6: تعريف مسارات URL (URLs)

* في ملف students/urls.py (إذا لم يكن موجودًا، قم بإنشائه) :
Python

from django.urls import path
from . import views

urlpatterns = [
    path('students/', views.student_list, name='student_list'),
    path('students/<int:student_id>/', views.student_detail, name='student_detail'),
    path('students/add/', views.add_student, name='add_student'),
    path('courses/', views.course_list, name='course_list'),
]
--

* قم بتضمين مسارات تطبيق students في ملف
 student_management_system/urls.py :
Python

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('students.urls')), # تضمين مسارات تطبيق students
]
--

الخطوة 7: إضافة بعض البيانات الأولية (اختياري)

يمكنك استخدام Django Admin لإضافة بعض الطلاب والدورات الأولية إلى قاعدة البيانات.
* قم بإنشاء مستخدم مسؤول :
python manage.py createsuperuser
--

* ثم قم بتشغيل خادم التطوير :
python manage.py runserver
--

* قم بزيارة http://127.0.0.1:8000/admin/ وقم بتسجيل الدخول لإضافة الطلاب والدورات.

الخطوة 8: حفظ النقاط (بيانات الطلاب والدورات والتسجيلات)

لقد قمنا بالفعل بحفظ بيانات الطلاب والدورات والتسجيلات في قاعدة البيانات
 عند إنشائها وتعديلها من خلال Django Admin أو من خلال النماذج وطرق
 العرض التي قمنا بإنشائها (مثل نموذج إضافة طالب في طريقة العرض add_student).
 Django ORM يتولى عملية التفاعل مع قاعدة البيانات وحفظ
 البيانات بناءً على تعريف النماذج الخاصة بك.

الخطوة 9: نشر التطبيق

لنشر تطبيق Django، يمكنك اتباع نفس الخطوات العامة المذكورة في
 قسم النشر في مثال المتجر الإلكتروني البسيط 
(باستخدام Gunicorn و Nginx أو أي خادم ويب و WSGI آخر تفضله). 
تأكد من تكوين خادم الويب الخاص بك لخدمة الملفات الثابتة التي تم جمعها
 بواسطة python manage.py collectstatic.

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


جدول المحتويات