• 0
عامر الشابي

تطبيقات الويب في البايثون وإستعمال إطار Django في برمجتها

سؤال

قبل أن أبدأ بشرح إطار عمل Django دعونا نسلط الضوء على مفهوم Web Application و الفرق بين Web App و Web Site.

ماهو Web Application:

تطبيق الويب هو تطبيق يتم تطويره ليعمل في المتصفحات ويتم الوصول إليه عن طريق الأنترنات والوسيط والا وهو المتصفح,ويتم كتابة هذه التطبيقات بعدة لغات برمجة

من بينها Python,Php,Perl,Ruby ..etc,ويتم تطويرهذه التطبيقات الويب عن طريق إطارت تصميم تطبيقات الويب Web Application Framework

من ممزيات هذه التقنية الرائعة:

1-تقليل من نسبة إصابة بالفيروسات

2-تسهيل أعمال المستخدم من تصفح وتعامل مع الموقع

3-إمكانية الوصول إلى التطبيق من أي جهاز يتوفرعلى خط الانترنات

4-التخلص من معانات تحديث التطبيقات,لأنه هنا في تقنياتنا التطبيق يتم تطويره عن طريق الموقع

وابرز الأمثلة على تطبيقات الويب هي Microsoft Office Live,Google Reader,Google Apps…etc.

الآن الفرق بين التطبيق الويب والموقع العادي Web Site.الموقع العادي هو عبارة عن موقع يحتوي على عدة مقالات او مواضيع وصور أما تطبيق الويب هو عبارة عن تطبيق يسهل على المستخدم التفاعل مع الموقع بشكل افضل من الموقع العادي.

قلنا في سطور السابقة أن التطبيق الويب يتم تطويره عن طريق إطارات عمل وهي Web Application Framework فهذه الأخيرة ليست إلا مكتبات مكتوبة بلغة برمجة معينة تسهل على المبرمج عناء برمجة الأمور الأساسية لتطبيق الويب,فبدل أن يقوم المبرمج بكتابة السكربتات الاساسية للتطبيق من كلاسات وغيرها فإن هذه الإطارات توفر له ذلك فتعوض الوقت المهدور في برمجة هذه الأمور التي جائت بها تطبيقات الويب جاهزة ولكل لغة برمجة إطار تصميم تطبيقات الويب الخاص بها بالتملك العديد من الإطارت وهنا في مقالنا سنتكلم على إطار Django.

ماهو Django:

هو إطار تصميم تطبيقات الويب مكتوب بلغة البايثون طور بواسطة شركة The World Online على يد Adrian Holovaty , Simon Willison , Jacob Kaplan , Wilson Miner.

سُمِيَ بDjango تخليدا لعازف القيثارة Django Reinhardt و كان أول إصدار له في سنة 2005.

لنقم الآن بتنصيب Django وفي مقالنا سنشرح على توزيعة Ubuntu

لتنصيب المشروع على توزيعة نستعمل الامر

sudo apt-get install python-django python-django-doc

الآن لإنشاء تطبيق جديد بـDjango نتبع الأمر التالي

django-admin startproject nameofproject

بحيث nameofproject هو إسم مشروعنا الجديد

ندخل على المشروع

cd nameofproject

سيتم إنشاء ملفات وهي

manage.py يسمح بإدارة المشاريع من إضافة وتشغيل التطبيق لإختباره

_init__.py هو ملف فارغ وهو اول ملف يقرأه البايثون.

settings.py : هذا الملف يحتوي على إعدادات المشروع.

urls.py : هذا الملف سوف يحتوي على روابط المشروع.

الآن لنبدأ بتشغيل الإطار أكتب هذا الامر في سطر الأوامر.

python manage.py runserver

نذهب إلى المتصفح وندخل على http://127.0.0.1:8000 فتظهر لنا صفحة ترحيبية للمشروع دلالة على تشغيله بنجاح

Django_default_page.png

 

سأقوم بكتابة تطبيقنا الذي سيطبع لنا الجملة الشهيرة في عالم البرمجة “Hello Wolrd”,حسنا سأبدأ بكتابة الأوامر مع شرحها إن شاء الله,وليكن في علم القارئ أنه عليه أن يكون ملم باللغة البايثون حتى ولو الاساسيات مثل المتغيرات والدوال وشروط واهم شيء هي التعاليق النمطية يمكنك زيارة الروابط التالية لفهمها الجزء الاولة,الجزء الثاني,الجزء الثالث,فالنبدأ عملنا الآن :

حسنا الآن ننشئ تطبيقنا الذي سيحمل إسم من إختيارك ومثلاً hello

python manage.py startapp hello

سنقوم بتعريف المشروع داخل قائمة INSTALLED_APPS من ملف settings.py الموجود داخل المشروع,نقوم بفتح الملف وننزل إلى أن نجد قائمة

INSTALLED_APPS = (‘django.contrib.auth’,‘django.contrib.contenttypes’,‘django.contrib.sessions’,‘django.contrib.sites’,‘django.contrib.messages’,‘django.contrib.staticfiles’,# Uncomment the next line to enable the admin:# ‘django.contrib.admin’,# Uncomment the next line to enable admin documentation:# ‘django.contrib.admindocs’,‘hello’,)

حسنا نقم بإنشاء الآن ملف templates وهو ملف القوالب الذي سيحتوي على صفحات تطبيقنا والقوالب ونقوم بإنشاء صفحة الاولة من التطبيق التي ستعرض في شاشة المتصفح مكتوب عليها “Hello World”وأكيد الصفحة ستكون مكتوبة بلغة html

mkdir templatescd templatesgedit hello.html

نكتب داخل الملف الشفيرة الخاص بنا

<h1>Hello World</h1>

جميل الآن نقم بتوجيه Django بمكان ملف القوالب templates,نفتح ملف settings.py من جديد ونذهب إلى السطر TEMPLATE_DIRS ونضع بداخل رابط ملف القوالب,وللحصول على رابط ملف القوالب ندخل على ملف ونتبع التالي

:~/Desktop/Django/nameofproject/templates$ pwd/home/amer/Desktop/Django/nameofprojec/templates

نرجع إلى مجلد المشروع وندخل إلى ملف settings.py ونقم بتوجيه Django بمكان ملف القوالب

TEMPLATE_DIRS = (# Put strings here, like “/home/html/django_templates” or “C:/www/django/templates”.# Always use forward slashes, even on Windows.# Don’t forget to use absolute paths, not relative paths.‘/home/amer/Desktop/Django/nameofproject/templates’

الآن نقوم بكتابة الدالة الاساسية لإظهار قوالب المشروع داخل المتصفحات,نفتح مجلد التطبيق hello وندخل على ملف views.py

cd hellogedit views.py

ونكتب داخله دالتا

from django.shortcuts import render_to_responsedef helloworld(request):return render_to_response(‘hello.html’)

من له دراية بي أساسيات البايثون أظن أن الكود مفهوم كل ما عليك معرفته على مكتبة django.shortcuts تجده هنا 
جيد الآن كتبنا دالتا بقيت خطوة أخيرة وهي وضع رابط ملف views.py مع بعض تعاليق النمطية التي يجب فهمها لكي تفهم الكود كليا
نرجع إلى مجلد المشروع Django ونفتح ملف urls.py

cd ..gedite urls.py

ونقم بكتابة الكود

from django.conf.urls.defaults import patterns, include, url# Uncomment the next two lines to enable the admin:# from django.contrib import admin# admin.autodiscover()urlpatterns = patterns(”,# Examples:# url(r’^$’, ‘nameofproject.views.home’, name=’home’),# url(r’^nameofproject/’, include(‘nameofproject.foo.urls’)),# Uncomment the admin/doc line below to enable admin documentation:# url(r’^admin/doc/’, include(‘django.contrib.admindocs.urls’)),# Uncomment the next line to enable the admin:# url(r’^admin/’, include(admin.site.urls)),(r’^hello/$’, ‘hello.views.helloworld’),)

جميل الآن قمنا بإنهاء كل شيء نقوم بتشغيل السرفر

python manage.py runserver

وندخل على الرابط http://127.0.0.1:8000/hello لي تظهر لنا الرسالة الشهيرة في عالم البرمجة
هذا كل شيء عن Django وهذه بدايتك في تطوير تطبيقات الويب بلغة البايثون العجيبة,وكما قلت عليك فهم أساسيات البايثون جيدا مع فهم التعاليق النمطية بشكل جيد,كما يمكنك مراجعة دروس Django على موقعها :

https://docs.djangoproject.com/en/1.5/

 بالتوفيق

تم تعديل بواسطه عامر الشابي
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

9 إجابة على هذا السؤال .

  • 0

السلام عليكم

 

بداية شكرا جزيلا على مشاركتك وننتظر منك المزيد

 

بعض التعقيبات

 

1- ال website هي الموقع وقد يكون static او dynamic وقد يكون خليطا مابين الإثنين

ال static هو صفحات HTML ليس أكثر 

أل dynamic هو صفحات تشمل التفاعل مع المستخدم 

 

2- ال project في لغة django هو مجموعة من التطبيقات applications 

3- ال web application لايشترط أن يتم عمله بإطار عمل ولكن هو الصرعة الحالية وهي الأفضل بالتأكيد لإنشاء تطبيقات الويب

4- ماذا تقصد ب "تقليل نسبة الإصابة بالفيروسات" ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا على الرد والملاحظة

نعم web site إن كانت static او dynamic فهي في كلتا الحالتين تتفاعل مع المستخدم

أما تطبيق الويب فهو يسهل التفاعل مع المستخدم بشكل أفضل من الموقع العادي

أفضل مثال على ذلك تطبيق naruto-arena أو تطبيق outlook الجديد

أما ما أقصده بتقليل نسبة الإصابة من الفايروسات أفضل مثال أضربه في ذلك هو  تطبيق google docs 

ربما بدل من إستخدام أحد ملفات office المشكوك في أمرها ربما من جيد إستخدام تطبيق google docs للإبتعاد عن التخوف من إصابة بأي فايروس أو تروجان هذا ما قصدته بتقليل الإصابة بالفايروسات

وشكرا لك

تم تعديل بواسطه عامر الشابي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً لك موضوع جميل و أتمنى منك طرح المزيد من الدروس و لكن هل التعامل مع Django في نظام أبونتو هو نفسه في نظتم وندوز 7 ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
هو مختلف قليلا لكن احسن من بيئة الوندوز

انصحك بابونتو وهناك الكثير في النت حول كيفية اعداده

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل دجانغوا أصبح يدعم بايثون 3

 

و هل هناك دروس للنسخة الداعمة 

 

شكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السﻻم عليكم ورحمة الله وبركاته

 

مشاركة طيبة اخي وبداية موفقة حياك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل دجانغوا أصبح يدعم بايثون 3

 

و هل هناك دروس للنسخة الداعمة 

 

شكرا

نعم، لاأعلم عن كتاب مكتوب ل python 3 مع django .. أنظر وثائقها الرسمية والإنتقالة لن تكون صعبة

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
نعم الاصدار الاخير يدعم بايثون 3

راجع الموقع الرسمي لجانغو ، اعتقد ان التغييرات ليست كثيرة

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا على الافادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .