---
title: Python Web Frameworks and What They Do 
localeTitle: أطر بيثون الويب وماذا يفعلون
---
لقد استخدمنا كلمة " `framework` بشكل متحرّر في المقالات السابقة. قد تكون أو لا تكون على دراية بما هو موجود. ومع ذلك ، سنناقش ما تفعله أطر عمل بايثون لك ، خارج الصندوق.

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

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

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

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

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

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

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

أنت تتساءل أين تتجه هذه المحادثة. إهدئ! نحن نعود إلى Python Web Development في أسرع وقت ممكن.

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

ربما كنت أتساءل ، ما هو ، تركت للمطور أن تفعل؟ استنادًا إلى التطبيق ، يجب عليك استخدام واجهات برمجة التطبيقات (frame API) وكتابة منطق التطبيق الخاص بك.

ستقوم شفرتك بملء الفجوات التي تم تركها عن _قصد_ في رمز الإطار - والجمع بين شفرتك وإطار العمل. تطبيق الويب الخاص بك سيكون له نفس الحياة فيه!

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

### جانغو

Django (/ ʒdʒæŋɡoʊ / JANG-goh) هو إطار عمل مجاني ومفتوح المصدر على شبكة الإنترنت ، مكتوب في بايثون ، يتبع النموذج المعماري لنموذج العرض (MVT). تتم صيانتها بواسطة مؤسسة دجانغو للبرمجيات (DSF) ، وهي منظمة مستقلة تم تأسيسها على أساس 501 (ج) (3) غير ربحية.

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

بعض المواقع المعروفة التي تستخدم Django تشمل خدمة البث العام و Instagram و Mozilla و The Washington Times و Disqus و Bitbucket و Nextdoor. تم استخدامه على موقع Pinterest ، ولكن في وقت لاحق انتقل الموقع إلى إطار مبني على قارورة.

### قارورة

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

وقد بدأت كمغلفة بسيطة حول Werkzeug و Jinja وأصبحت واحدة من أكثر أطر تطبيقات Python شعبية.

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

تم صنع قارورة في عام 2004 من قبل مجموعة دولية من Pythonists تدعى "Pocoo" ، مثل نكتة نيسان كذبة والتي تم تحويلها لاحقًا إلى شيء "حقيقي". وفقا ل Wikpedia ، كان إطار بيثون على شبكة الإنترنت الأكثر استخداما على جيثب. وهو عبارة عن إطار مصغر ومفتوح المصدر مكتوب في بايثون ( [عرض على جيثب](https://github.com/freeCodeCamp/guide/tree/master/src/pages/javascript) ). كما تنص على ويكيبيديا ،

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

قارورة هي إلى حد كبير إطار "بطاريات غير المدرجة" ، مقارنة بشيء مثل Django. هذا يعني أنك بحاجة إلى تثبيت وحدات مثل مصادقة المستخدم والنماذج وأشياء أخرى بنفسك. لا يعني هذا أن القارورة لا تُصنع لتلك الأشياء ، بل ببساطة لا يتم تضمينها ويتم إنشاء هذه الوحدات من قبل المجتمع. يحتوي القارورة أيضًا على وثائق شاملة ومفصلة على http://flask.pocoo.org/docs/. يوفر البساطة والمزيد من التحكم في الأشياء الصغيرة. لن يكون لديك وظيفة لا يتم استخدامها ، حيث يمكنك اختيار ما تتم إضافته وما لا يتم استخدامه.

المواقع التي تستخدم قارورة تشمل Pinterest! (التي انتقلت من Django) ، واجهة برمجة التطبيقات الخاصة من Twilio (حتى أنها قدمت امتدادًا باسم Flask-RESTful for API's) ، و Netflix (التي تستخدم ScriptFlask ، وهي أداة تعتمد على قارورة)

### زجاجة

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

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