اذهب إلى المحتوى

تثبيت إطار العمل جانغو على أوبنتو


هدى جبور

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

يعتمد جانغو على النمط البنائي للبرمجيات نموذج-قالب-عرض Model-Template-View -تختصر إلى MTV- والمُستمد من النمط البنائي نموذج-عرض-متحكم model–view–controller -تختصر إلى MVC- . يتم تعريف النموذج Model على أنه مصدر مفرد ومحدد من البيانات، والعرض View على أنه عبارة عن البيانات التي يتم إظهارها للمستخدم، والقالب Template على أنه عبارة عن الآلية التي يستخدمها جانغو لتوليد صفحات HTML.

إن اعتماد جانغو على بنية نموذج-قالب-عرض تشجع على مبدأ عدم التكرار DRY programming وهو مبدأ يهدف إلى الحد من تكرار المعلومات من جميع الأنواع، وينص على أن "أي جزء في النظام ينبغي أن يكون معرّفاً في مكان واحد واضح مسؤول عن هذا الجزء".

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

المتطلبات الأساسية

حساب مستخدم عادي بصلاحيات sudo مُهيّأ مسبقًا على خادم أبونتو 20.04.

تثبيت جانغو

بإمكانك تثبيت جانغو بطرق مختلفة وفقًا لاحتياجاتك والطريقة التي تريد بها تهيئة بيئة التطوير.

1. تثبيت عام من خلال الحزم

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

أولاً، يجب تحديث فهرس الحزمة المحليّة لديك local package index باستخدام apt:

$ sudo apt update

الآن تحقق من إصدار بايثون الذي ثبَّته، مع ملاحظة أن الإصدار 3.8 من بايثون يكون افتراضيًا متوفرًا في الإصدار 20.04 من أبونتو وما فوق. عمومًا، يمكنك التحقق من إصدار بايثون المُثبت على جهازك عن طريق كتابة الأمر التالي:

$ python -V

يجب أن يكون الخرج مُشابه للخرج التالي:

Python 3.8.2

الآن نثبت جانغو:

$ sudo apt install python3-django

نفذ الأمر التالي للتحقق من إصدار جانغو الذي ثبّتناه للتو، وضمان أن عملية التثبيت تمت بنجاح:

$ django-admin --version

يجب أن يكون الخرج مُشابهًا للخرج التالي:

2.2.12

هذا يعني أن عملية التثبيت تمت بنجاح، وربما تلاحظ أيضًا أن إصدار جانغو الذي حصلت عليه ليس أحدث إصدار مستقر stable version.

2. تثبيت جانغو باستخدام مدير حزم بايثون pip ضمن بيئة افتراضية

تُعتبر هذه الطريقة مرنة وعملية أكثر ويوصى باستخدامها. يمكنك إنشاء بيئة مخصصة لمشاريعك self-contained، باستخدام أدوات مثل venv و vertualenv، أو يمكنك استخدام البيئة الافتراضية التي تسمح لك بتثبيت جانغو في مجلد المشروع بأمان، إلى جانب التخصيصات والحزم الأخرى اللازمة لكل مشروع.

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

أولاً، يجب تحديث فهرس الحزمة المحليّة لديك local package index باستخدام apt:

$ sudo apt update

الآن يمكنك التحقق من إصدار بايثون المُثبت على جهازك عن طريق كتابة الأمر التالي:

$ python -V

يجب أن يكون الخرج مُشابه للخرج التالي:

Python 3.8.2

بعد ذلك، نثبت pip و venv من مستودعات أبونتو:

$ sudo apt install python3-pip python3-venv

الآن، عندما تبدأ مشروعًا جديدًا، يمكنك إنشاء بيئة افتراضية له. ابدأ بإنشاء مجلد للمشروع الجديد وانتقل إليه:

$ mkdir ~/newproject
$ cd ~/newproject

بعد ذلك، أنشئ بيئة افتراضية داخل مجلد المشروع باستخدام أمر بايثون المتوافق مع اصدار بايثون المُثبت لديك. سنطلق على بيئتنا الافتراضية اسم my_env، ويُفضل دومًا أن تسميها اسمًا يَصِفَها:

$ python -m venv my_env

بعد ذلك، سيتم تثبيت إصدارات مستقلة من بايثون ومدير الحزم pip ضمن بنية مجلد معزولة isolated directory structure (طريقة لإظهار الملفات بشكل معين، وتظهر الملفات بشكل شجري هرمي) داخل مجلد مشروعك. سيتم إنشاء مجلد بالاسم الذي تحدده، والذي يحتوي على التسلسل الهرمي للملفات في المكان الذي سيتم فيه تثبيت الحزم الخاصة بك.

لتثبيت الحزم ضمن البيئة المعزولة التي أنشأناها، يجب تنشيطها عن طريق كتابة الأمر التالي:

$ source my_env/bin/activate

يُفترض آنذاك أن يتغير موجه سطر الأوامر لديك ليشير إلى بيئتك الافتراضية، أي يجب أن يكون مشابه لهذا:

(my_env)username@hostname:~/newproject$

بعد أن انتقلت إلى بيئتك الافتراضية، يمكنك استخدام pip لتثبيت جانغو. لا يجب أن تستخدم pip لتثبيت جانغو قبل أن تكمل الخطوة السابقة (الانتقال إلى بيئتك الافتراضية)، أيضًا أنت لست بحاجة إلى استخدام sudo، لأنك تُثبته محليًّا.

(my_env) $ pip install Django

يمكنك التحقق من أن عملية التثبيت تمت بنجاح، كالتالي:

(my_env) $ django-admin --version
3.0.8

تجدر الإشارة هنا إلى أن الأمر السابق يُثبت لك أحدث نسخة من جانغو، وفي وقت كتابة هذا المقال كانت أحدث نسخة هي النسخة 3.0.8، لذا عند قراءتك المقال وتثبيتك لجانغو، ربما تكون نسختك مختلفة (أحدث).

أخيرًا لمغادرة البيئة الافتراضية، يجب أن تُلغي تنشيط البيئة الافتراضية:

(my_env) $ deactivate

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

$ cd ~/newproject
$ source my_env/bin/activate

3. تثبيت أحدث إصدار من جانغو من خلال جيت git

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

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

أولاً، نُحدث فهرس الحزمة المحلي:

$ sudo apt update

تحقق الآن من إصدار بايثون المُثبَّت:

$ python -V

يجب أن يكون الخرج مُشابه للخرج التالي:

Python 3.8.2

ثم ثبّت pip و venv من المستودعات الرسمية:

$ sudo apt install python3-pip python3-venv

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

يمكنك نسخ المستودع إلى مجلد يُسمى ‎~/django-dev داخل المجلد الرئيسي home، كالتالي:

$git clone git://github.com/django/django ~/django-dev

الآن انتقل إلى هذا المجلد:

$ cd ~/django-dev

أنشئ بيئة افتراضية باستخدام أمر بايثون المتوافق مع إصدار بايثون المثبَّت لديك:

$ python3 -m venv my_env

ثم نشطها بالأمر التالي:

$ source my_env/bin/activate

الآن، يمكنك تثبيت المستودع باستخدام pip، وكما تلاحظ استخدمنا الراية e-، لكي تتم عملية التثبيت مع صلاحية قابلية التعديل editable، وهذا ضروري عندما نُنجز عملية التثبيت من جيت:

(my_env)$ pip install -e ~/django-dev

كما هي العادة، تحقق من نجاح التثبيت:

$ django-admin --version
3.2

إنشاء أول مشروع لك

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

بدايًة، أنشئ مجلد مشروعك، وانتقل إليه.

$mkdir ~/django-test
$cd ~/django-test

ثم أنشئ بيئتك الافتراضية:

$ python3 -m venv my_env

ونشطها بالأمر التالي:

$ source my_env/bin/activate

ثبت جانغو:

(my_env)$ pip install django

الآن، يمكنك استخدام django-admin لبناء مشروعك مع استخدام الأمر startproject، سنسمي المشروع djangoproject، لكن يمكنك اختيار أي اسم تريده. سيُنشئ الأمر startproject مجلدً داخل مجلد العمل الحالي لديك، والذي يتضمن:

  • ملف الإدارة manage.py، الذي يُمكّنك من إدارة العديد من المهام المتعلقة بجانغو.
  • مجلد يتضمن شيفرة مشروعك، ويكون اسمه مُطابقًا لاسم المشروع.

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

(my _env)$ django-admin startproject djangoproject .

الآن، يمكنك استخدام أمر التهجير migrate مع ملف manage.py لتهجير قاعدة البيانات (في هذا المثال نستخدم SQLite)، إذ يُطبق التهجير أي تغييرات أجريتها في نماذج جانغو على مخطط قاعدة البيانات:

(my_env) $ 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 sessions.0001_initial... OK

وأخيرًا، نُنشئ مُستخدم مدير (مسؤول) administrative user لتتمكن من استخدام واجهة مدير جانغو Django admin interface، من خلال الأمر createsuperuser:

(my_env)$ python manage.py createsuperuser

سيُطلب منك أن تحدد اسم مستخدم وعنوان بريد إلكتروني وكلمة مرور للمستخدم الذي تريد إنشاءه.

تعديل قائمة ALLOWED_HOSTS في ملف إعدادات جانغو

لاختبار تطبيقك بنجاح، ستحتاج إلى تعديل أحد التوجيهات directives في إعدادات جانغو. افتح ملف الإعدادات من خلال الأمر التالي:

(my_env) $ nano ~/django-test/djangoproject/settings.py

الآن، حدد توجيه ALLOWED_HOSTS الذي يُمكِّنك من تحديد قائمة من العناوين أو أسماء النطاقات التي قد تُستخدم للاتصال بجانغو، وبالتالي فإن وصول أي طلب Request مع ترويسة مُضيف Host header (رأس المضيف هو الجزء الثالث من المعلومات الذي يمكنك استخدامه بالإضافة إلى عنوان IP ورقم المنفذ لتعريف نطاق الويب بشكل فريد) غير موجود في هذه القائمة إلى ظهور استثناء. إنَّ إنجاز هذه العملية ضروري في جانغو لتجنب بعض أنواع الثغرات الأمنية.

إذًا ضمن القائمة ALLOWED_HOSTS حدِّد عناوين IP أو أسماء النطاقات المرتبطة مع خادم جانغو الخاص بك، وضع كل واحدٍ منهم ضمن علامتي اقتباس، وافصل بين كل واحدة بفاصلة. أخيرًا، إذا كنت تريد السماح بطلبات لنطاق بأكمله أو لأي نطاق جزئي، فأضف نقطة في بدايته.

تذكر أن ALLOWED_HOST موجود ضمن الملف settings.py وفي مثالنا هو موجود في المسار:

ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

عندما تنتهي احفظ الملف وأغلق المحرر.

اختبار خادم التطوير

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

قبل استخدام خادم التطوير، تأكد من فتح المنفذ المناسب في جدار الحماية firewall الخاص بك.

إذا اتبعت دليل إعداد الخادم الأولي وكنت تستخدم UFW، فيمكنك فتح المنفذ 8000 من خلال الأمر التالي:

(my_env) $ sudo ufw allow 8000

لمزيد من التفاصيل انظر مقال أساسيات UFW: قواعد وأوامر شائعة للجدار الناري.

شغّل خادم التطوير:

(my_env)$ python manage.py runserver your_server_ip:8000

الآن، ضمن متصفح الويب، حاول الانتقال إلى الخادم الخاص بك من خلال عنوان IP المربوط به، متبوعًا بالمنفذ 8000.

http://your_server_ip:8000

إن كنت تعمل محليًا على حاسوبك، فيمكنك تشغيل الخادم للعمل محليًا بتمرير رقم المنفذ فقط بالشكل:

(my_env)$ python manage.py runserver 8000

وبذلك، يمكنك الانتقال إلى العنوان localhost:8000 أو http://127.0.0.1:8000.

يجب أن ترى شيئًا يشبه هذا:

django_landing_page_00.png

للوصول إلى واجهة المُدير admin interface، أضف /admin/ إلى نهاية عنوان URL الخاص بك.

http://your_server_ip:8000/admin/
أو
http://127.0.0.1:8000/admin/

سينقلك ذلك إلى شاشة تسجيل الدخول:

django-admin-login_01.png

إذا أدخلت اسم المستخدم وكلمة المرور الخاصين بالمدير admin اللذين أنشأتهما منذ قليل، فستتمكن من الوصول إلى قسم المُدير الأساسي في الموقع:

django-admin-panel_02.png

عندما تنتهي من الاطلاع على الموقع الافتراضي، يمكنك إيقاف خادم التطوير من خلال الضغط على الاختصار CTRL-C في الطرفية terminal.

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

خاتمة

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

إن وجود إطار عمل متكامل مثل جانغو يمكن أن يساعد في جعل عملية التطوير أسرع، مما يسمح لك بالتركيز أكثر على الجوانب المهمة في تطبيقك.

ترجمة -وبتصرف- للمقال How To Install the Django Web Framework on Ubuntu 20.04 لصاحبه Brian Boucheron.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...