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

27 ديسمبر، 2022 * تيتو 4 تك

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

 

 

ولكن قبل أن نبدأ في إنشاء أول تطبيق يجب علينا معرفة طريقة عمل الهيكل التنظيمي لـ Django.

 

طريقة عمل دجانغو Django:

يتميز Django بإطار عمل "النموذج (Model) والعرض (View) والقالب (Template)" ، المعروف أيضًا باسم إطار عمل MVT. عادةً ما يُعتبر MVT بديلاً لإطار عمل MVC ، حيث يشير الحرف C إلى "وحدة التحكم (Controller)".

الآن ، قد تتساءل كيف يختلف MVT عن MVC ولماذا يكون أحدهما أفضل من الآخر.

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

أولا: النموذج (Model):

النموذج أو Model هو مكون يعمل كواجهة لبياناتك. يربط بين واجهة المستخدم وقاعدة البيانات ، وهو مسؤول عن الحفاظ على البيانات. Model هو العقل المنطقي وراء التطبيق بأكمله ويتميز بعمله مع قواعد البيانات المختلفة. تتضمن بعض قواعد البيانات العلائقية الأكثر شيوعًا مثل MySQL و Postgres.

ثانيا: العرض (View):

يرتبط مكون العرض أو View بواجهة المستخدم - ما تراه عند فتح موقع ويب في متصفحك. يتم تمثيله بواسطة عناصر مثل CSS أو HTML أو JavaScript أو ملفات Jinja أو تقنيات الواجهة الأمامية الأخرى.

ثالثا: القالب (Template):

تجعل القوالب أو Templates من السهل إنشاء تطبيق ويب من البداية ؛ على سبيل المثال ، عند إجراء عملية أو وظيفة معقدة. يشتمل القالب على أجزاء ثابتة من مخرجات HTML معينة وبعض الصيغ الخاصة التي تصف كيفية إدراج البيانات الديناميكية.

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

 

كيفية إعداد مشروع أو تطبيق Django أساسي:

قبل أن نصل إلى التعليمات البرمجية ، دعنا نبدأ بالتمييز بين مشاريع Django وتطبيقات Django.

  • مشاريع Django:

مشاريع Django عبارة عن مجموعة عالية المستوى من ملفات التكوين والتطبيقات التي تعمل بمثابة الجزء المنطقي الذي يحكم تطبيق الويب بالكامل.

  • تطبيقات Django:

تطبيقات Django هو وحدة فرعية من مشروع Django مكتفي ذاتيًا ومكتوبًا لتنفيذ منطق الأعمال. يمكن أن يتكون مشروع Django من صفر إلى العديد من التطبيقات.

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

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

 

كيفية إنشاء مشروع Django:

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

لبدء مشروع Django جديد ، يجب عليك تشغيل الأمر التالي: Django-admin startproject first_app

(venv)> django-admin startproject first_app

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

first_app/
    manage.py    
    first_app/   
        __init__.py       
        settings.py       
        urls.py       
        wsgi.py       

قبل المضي قدمًا ، دعنا نلقي نظرة على الملفات الخمسة وما هي مسؤوليتهم.

  • manage.py

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

  • __init__.py

ملف فارغ يعمل كحزمة بايثون ويستخدم لتنفيذ كود تهيئة الحزمة. يتم تنشيطه عند استيراد الحزمة أو وحدة من الحزمة.

  • settings.py

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

  • urls.py

مسؤول عن تعيين المسارات والروابط في المشروع ، يشتمل هذا الملف على جميع روابط المشروع والوظائف التي يجب الاتصال بها.

  • wsgi.py

يعمل كواجهة بوابة لنشر مشروعك في WSGI. ببساطة ، يساعد تطبيق Django الخاص بك على التواصل مع خادم الويب.

 

والشيء الرائع الآخر في Django هو أنه يأتي مع خادم ويب مثبت ، مما يجعل من السهل جدًا تشغيل المشروع محليًا أثناء مرحلة التطوير. يمكنك اختبار المشروع الذي قمت بإنشائه عن طريق تشغيل الأمر: python manage.py runserver.

(venv) > python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 27, 2022 - 19:32:40
Django version 4.1.4, using settings 'first_app.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

وكما ترون يعمل الخادم بشكل ناجح. ولذلك دعونا نبدأ في إنشاء أول تطبيق لنا علي Django.

الان يجب عليك كتابة الامر التالي لإنشاء جداول المشروع في قاعدة البيانات python manage.py migrate.

(venv)> python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

وكما ترون قد تم إنشاء الجداول بنجاح في قاعدة البيانات الخاصة بالمشروع.

 

كيفية إنشاء تطبيق Django:

 

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

أولاً ، يمكنك استخدام الأداة المساعدة لسطر أوامر django-admin وتشغيل الكود التالي: Django-admin startapp new app. ثانيًا ، يمكنك استخدام ملف manage.py لتنفيذ الأمر python manage.py startapp new app

بعد تنفيذ أمر startapp ، سترى مجلدًا جديدًا بالاسم الذي منحته إياه - في هذه الحالة ، "التطبيق الجديد" - مضافًا إلى بنية المجلد السابقة. سيحتوي المجلد أيضًا على بعض ملفات Python الأخرى.

(venv) PS C:\Users\Tareq-Aljundy\Desktop\tito4tech\django_first_app\first_app> Django-admin startapp new_app
(venv) PS C:\Users\Tareq-Aljundy\Desktop\tito4tech\django_first_app\first_app> ls


    Directory: C:\Users\Tareq-Aljundy\Desktop\tito4tech\django_first_app\first_app


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        12/27/2022   7:32 PM                first_app
d-----        12/27/2022   7:39 PM                new_app
-a----        12/27/2022   7:32 PM              0 db.sqlite3
-a----        12/27/2022   6:55 PM            687 manage.py


(venv) PS C:\Users\Tareq-Aljundy\Desktop\tito4tech\django_first_app\first_app> cd new_app
(venv) PS C:\Users\Tareq-Aljundy\Desktop\tito4tech\django_first_app\first_app\new_app> ls


    Directory: C:\Users\Tareq-Aljundy\Desktop\tito4tech\django_first_app\first_app\new_app


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        12/27/2022   7:39 PM                migrations
-a----        12/27/2022   7:39 PM             66 admin.py
-a----        12/27/2022   7:39 PM            151 apps.py
-a----        12/27/2022   7:39 PM             60 models.py
-a----        12/27/2022   7:39 PM             63 tests.py
-a----        12/27/2022   7:39 PM             66 views.py
-a----        12/27/2022   7:39 PM              0 __init__.py

أثناء إنشاء موقع الويب الخاص بك ، فإن مجلد تطبيق Django هو المكان الذي ستقضي فيه الكثير من وقتك. ستستخدم أيضًا مجلد settings.py كثيرًا ، ولكنك ستنشئ معظم الوظائف داخل "التطبيق الجديد" لتطبيق Django.

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

  • models.py

يتم الإعلان عن كيانات تطبيق الويب في هذا الملف للسماح لـ Django بالتفاعل مع قاعدة بيانات تطبيق الويب. يتم ترجمة النماذج تلقائيًا بواسطة Django إلى جداول قاعدة البيانات.

  • migrations

يتم هنا تخزين بعض الملفات التي تساعد في تتبع التغييرات التي تم إجراؤها على ملف Models.py. يتم ذلك للتأكد من أن قاعدة البيانات و Models.py متزامنة.

  • admin.py

ملف تكوين لتطبيق Django المدمج يُشار إليه باسم Django Admin.

  • apps.py

ملف تكوين للتطبيق.

  • tests.py

 ملف يستخدم لكتابة اختبارات الوحدة للتطبيق المحدد.

  • views.py

 ملف حيث تتم كتابة منطق التعليمات البرمجية لتطبيقك. يتعامل مع دورة الطلب / الاستجابة (request/response) لتطبيق الويب.

 

في هذه المرحلة ، تكون قد انتهيت من إعداد مشروع Django الذي يحتوي على تطبيق Django. حان الوقت الآن لبدء تنفيذ أفكارك. من الآن فصاعدًا ، الأمر متروك لك لتقرير ما تريد القيام به مع Django أو المشاريع الفريدة التي ترغب في إنشائها.

 

المشاريع التي يستخدم فيها Django:

إذا نظرت إلى ماضي Django ، فستعرف أن إطار عمل Python هذا قد تم تطويره في البداية لتشغيل Lawrence Journal-World ، وهو تطبيق ويب تابع لنشر الصحف.

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

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

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

 

متى تستخدم Django ومتى لا تستخدم Django؟

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

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

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

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

هذه هي الطريقة التي تمكنت بها تطبيقات الويب الشهيرة مثل Instagram و Disqus و Pinterest من الوصول بسرعة إلى السوق ، والتعامل مع التدفق الهائل للمستخدمين ، وإضافة ميزات ووظائف جديدة بسلاسة.

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

 

  • تحتاج إلى تطوير تطبيق ويب أو واجهة API الخلفية بسرعة.

  • كنت تتطلع إلى إنشاء تطبيق يدمج التقنيات المتطورة مثل ML ، و AI ، و DE ، وما إلى ذلك.

  • ترغب في تطوير تطبيق ويب يمكن نشره بسرعة وتوسيع نطاقه أو تصغيره بناءً على احتياجاتك.

  • أنت بحاجة إلى تطبيق آمن من أكثر نقاط الضعف شيوعًا.

  • سيتم استخدام التطبيق الخاص بك لاسترداد البيانات أو نشرها أو مشاركتها.

  • تريد أن يكون تطبيق الويب والواجهة الخلفية لواجهة برمجة التطبيقات في نفس مصدر الشفرة.

  • كنت تتطلع إلى الاستفادة من البرامج مفتوحة المصدر.

  • أنت بحاجة إلى إطار عمل يتطور بنشاط وله توثيق جيد ويتمتع بمجتمع داعم.

  • أنت بحاجة إلى دعم ORM وترغب في الابتعاد عن إدارة استعلامات قاعدة البيانات.

 

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

 

  • أنت تنشئ تطبيق ويب ضخمًا ، مما يجعل العمل مع قاعدة شفرة واحدة أمرًا صعبًا.

  • تريد إنشاء تطبيق أساسي بدون قاعدة بيانات أو وظائف معقدة أخرى. (في هذا السيناريو ، من الأفضل العمل مع Flask مثلاً بدلاً من Django.)

  • أنت تبحث تحديدًا عن إنشاء كل شيء من البداية.

  • فريق التطوير لديك ليس لديه خبرة في برمجة Python ولا يمكنه استثمار الوقت أو الموارد في اكتساب المهارات المناسبة.

  • لديك خطط لتصنيف تطبيق الويب الخاص بك إلى خدمات مصغرة. (بالنسبة لحالات الاستخدام هذه ، قد يكون من الأفضل استخدام إطار عمل مختلف لكل خدمة مصغرة بدلاً من إطار عمل واحد لجميع الخدمات المصغرة.).

 

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

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

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

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

التسميات