(1) ورشة تطوير تطبيقات الويب باستخدام Django: بناء المشروع


#1

أهلا بالجميع

فهرس موضوعات الورشة

فهرس موضوعات ورشة تطوير تطبيقات الويب باستخدام Django

ما هو Django؟

إطار عمل آخر يعمل بواسطة Python، مجاني ومفتوح المصدر، صُمم ليُساعد على تطوير تطبيقات الويب وأخذ عن عاتق المطورين الاهتمام بالعديد من الأمور التي قد يستغرق العمل عليها ساعات طويلة.

ما الفرق بين Django و Flask؟

  • يتميز إطار عمل Flask بالبساطة وبمرونة التحكم فيسمح لك بأن تُقرر آلية عمل التطبيق، وهو مناسب لمن يخوض تجربة تعليمية أو من يُريد المزيد من التحكم في الإضافات التي سيستخدمها في تطبيقه.

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

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

image-1

مشروعك الأول في Django

لتبدأ العمل على Django عليك بتثبيت أحد إصدارته وهناك العديد من الطرق الممكنة لتثبيت إلا أننا سنتبع الأبسط بينها، عبر pip، وذلك بكتابة الأمر

pip install django

الذي سيقوم بتثبيت آخر إصدار من Django متوافق مع نسخة Python لديك، في هذه الورشة سنعمل على إصدار 2.0.2 والذي يتطلب وجود نسخة Python 3.4 على الأقل

كيف أتأكد من تثبيت Django؟

يُمكنك التأكد من تثبيت Django ومعرفة رقم الإصدار، بكتابة الأمر

python -m django --version

كيف أبدأ المشروع؟

لإنشاء مشروعك الأول في Django يُمكنك كتابة الأمر

django-admin startproject coretabs

الذي سيقوم بإنشاء مجلد المشروع باسم coretabs يحتوي الملفات التالية

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

ما هي وظيفة هذه الملفات؟

المجلد الرئيسي coretabs يحمل اسم المشروع، يُمكنك تغيير الاسم إن أردت

ملف manage.py سيسمح لك بالتفاعل مع المشروع من خلال مجموعة من الأوامر

المجلد الفرعي coretabs يحمل اسم المشروع و يُمثل الـ Package الخاصة به

ملف init.py يُخبر Pyhton بالتعامل مع هذا المجلد على أنه Package

ملف settings.py يحتوي إعدادات المشروع، سنأتي عليها لاحقًا

ملف urls.py لضبط مسارات المشروع، يُعتبر بمثابة الدليل أو الفهرس لصفحات المشروع

ملف wsgi.py يُمثل نقطة البداية بالنسبة للسيرفرات التي تعمل بتقنية WSGI

كيف أقوم بتشغيل المشروع؟

ما زلنا في المرحلة الأولى، لكن هل تود رؤية المشروع على المتصفح؟ ادخل إلى مجلد المشروع واكتب الأمر

python manage.py runserver

سيبدأ سيرفر التطوير بالعمل وستظهر لك النتيجة التالية

Performing system checks...

System check identified no issues (0 silenced).

You have 14 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.

April 19, 2018 - 14:42:46
Django version 2.0.2, using settings 'coretabs.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

يُمكنك الآن الذهاب إلى العنوان http://127.0.0.1:8000/ في متصفحك لتشاهد رسالة تهنئة بنجاح عملية إنشاء المشروع

هل يُمكن تغيير الصفحة الرئيسية؟

نعم بالتأكيد، ولذلك سنقوم بإنشاء ملف views.py داخل مجلد coretabs الفرعي، حيث سيعمل بمثابة Controller في المشروع

نقوم باستدعاء HttpResponse الذي سيُساعدنا في إرجاع محتوى مُخصص داخل دالة index

# views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hi there, this is our new home page.")

وفي ملف urls.py نقوم باستدعاء ملف views ومنه دالة index عند طلب الصفحة الرئيسية للموقع

# urls.py
from . import views

urlpatterns = [
    path('', views.index),
    path('admin/', admin.site.urls),
]

الآن أصبح لدينا صفحة رئيسية جديدة

لماذا لا تظهر الصفحة الرئيسية الجديدة؟

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

في الـ Terminal، اضغط على Ctrl + C لإيقاف سيرفر التطوير وأعد تشغيله مُجددًا بكتابة الأمر

python manage.py runserver

ما هي المهمة المطلوبة؟

قم بكتابة دالة hello التي تستقبل parameter واحد وتقوم بإرجاعه عند الطلب

كمثال عند طلب http://127.0.0.1:8000/hello/coretabs تقوم بطباعة

Hello coretabs

أو عند طلب http://127.0.0.1:8000/hello/all تقوم بطباعة

Hello all

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

تسليم الحلول

(2) ورشة تطوير تطبيقات الويب باستخدام Django: مشاركة حلول بناء المشروع


(2) ورشة تطوير تطبيقات الويب باستخدام Django: مشاركة حلول بناء المشروع
#2

مشروع رائع ولكن فى المبادرة اشتغلنا على بايثون 2.7 وده اللى احنا منزلينه عندنا كده لازم اشيله وانزل النسخة 3.4 ولا ايه


#3

الاصدار اللي درسناه في المبادرة كان فقط لتعلم الاساسيات , اما الافضل فهو الاصدار الجديد ويمكن الانتقال للبرمجة بالاصدار الجديد بكل سهولة لان الفوارق ليست جذرية .


#4

هكون معاكم في الورشه ان شاء الله بعد ما انتهي من امتحاناتي بالمدرسه


#5

عند كتابة الامر في git bash لا تظهر الفقرة السابقة و لكن اذا فتحت العنوان المذكور يتحقق المطلوب


#6

لم أفهم جيدا ماهي المشكلة؟ @Ahmed-Shalaby


#7

في المبادرة اشتغلنا Python 2.7 لأن الدروس المُسجلة منذ وقت طويل كانت تعمل على Python 2.7

أما الآن فمن الأفضل أن تبدأ العمل على Python 3 للمزايا الكبيرة التي تتمتع بها، بإمكانك حذف Python 2.7 فلا أعتقد أنك ستحتاجها


#8

نعم، في بعض الأحيان Git Bash لا يقوم بإظهار سجل تشغيل سيرفر التطوير

لكنها ليست مشكلة، فالسيرفر سيعمل، إن لم يعمل اضغط Ctrl + C في الـ Terminal وسيتم إيقاف تشغيل السيرفر مع إظهار سجل التشغيل وأي أخطاء قد حدثت


#9

كما وضح @LouayH كانت تلك هي المشكلة


#10

اسف لم أفهمك فا انا لا استعمل Git bash :smile:

الآن فهمت :smile:


#11

اشكرك علي اهتمامك :slight_smile:


#12

رائع


#13

شكرا جزيلا لكم
مستوى الموقع بقى اكثر من رائع:grinning:


#14

please any one can tell me where can i write this commands
pip install django and the other commands to create the first project


#15

اذا كنت تستعمل ويندوز فتكتبها في command prompt
اما إذا كنت تعمل على لينكس او ماك فتكتبها في الTerminal

ما هو نظام التشغيل الأساسي الذي تستخدمه ؟ @KHALED


#16

windows 7
can use git bash or not


#17

بتفاعلكم سيكون أروع :wink:


#18

Yes you can @KHALED


#19

C:\Python27>python C:\coretabs manage.py runserver
C:\Python27\python.exe: can’t find ‘main’ module in ‘C:\coretabs’

C:\Python27>
اين الاشكال


#21

Django 2.0, supports Python 3.4 and later.