4.0 KiB
title, localeTitle
| title | localeTitle |
|---|---|
| Bottle | زجاجة |
يسمح إطار الزجاجة لنا بسرعة وسهولة الحصول على وتشغيل تطبيق ويب أساسي.
التفاصيل التالية هي كيفية كتابة وتشغيل تطبيق ويب ترحيبي بسيط حيث يمكننا إدخال اسمنا في نموذج ، ثم الضغط على "إرسال" واستعادة التحية.
-
استخدم
pipلتثبيت حزمة الزجاجة.pip install bottle -
قم بإنشاء ملف
htmlليتم عرضه عند تحميل الموقع. على سبيل المثالindex.html.لنقم بإضافة عنوان ونموذج أساسي لهذه الصفحة.
`
Say Hello
Name:
` -
قم بإنشاء ملف python جديد ، على سبيل المثال
main.py -
في السطر الأول من الملف ، نحتاج إلى استيراد ، طلب ، وتشغيل الوظائف من وحدة الزجاجة.
from bottle import get, request, run -
الآن نحدد وظيفتنا لخدمة ملف html الخاص بنا عندما يتم الوصول إلى صفحة الجذر.
هنا نستخدم مصمم
@get، الذي يحدد هذه الوظيفة التي يجب أن تستجيب لطلباتHTTP GETوتمريرها في'/'باعتبارها المسار الذي سيتم استدعاء الدالة من خلاله.بعد ذلك ، نقوم بتعريف الدالة
index()باستخدام الكلمة المفتاحيةdef.لقراءة ملف html الذي أنشأناه في الخطوة 2 وإرجاعه ، نستخدم ما يسمى مدير السياق. هذا يعالج فتح وإغلاق الملف لنا ، مما يسمح لنا بقراءة الملفات والمحتويات وإعادتها مع بيان
return.@get('/') def index(): with open('./index.html') as f: return f.read() -
للحصول على موقع لتشغيل والاستماع لطلبات نحن بحاجة إلى إضافة استدعاء الأطر زجاجة
runوظيفة على النحو التالي.هنا نمرر في المضيف الذي سيتم تشغيل تطبيق الويب عليه ، في هذه الحالة
localhost، والمنفذ الذي يجب الاستماع إليه لطلبات HTTP. -
قم بتشغيل التطبيق وقم بتحميله في المستعرض http: // localhost: 8080 / ، يجب أن تشاهد ملف html أنشأنا صانعة شعر في المتصفح.
إذا أدخلنا اسمنا ثم اضغط على تقديم الآن ،
HTTP 404خطأHTTP 404رغم أننا لم نقم بعد بتعريف الوظيفة للرد على هذا الطلب.run(host='localhost', port=8080) -
main.pyملفmain.pyلدينا ، نحتاج الآن إلى تحديد الوظيفة للرد عندما نضع الشكل.مرة أخرى نستخدم الديكور
@getهنا ، ولكن هذه المرة نمرر في'/.hello'. قد تلاحظ أن هذا هو نفس المسار الذي قمنا بتعريفه في سمة الإجراء الخاصة بنا فيindex.html.بعد ذلك ، نسترجع قيمة
nameمن عنوان url ، عند إرسال النموذج ، يتم تشفير عنوان البيانات مثل http: // localhost: 8080 / hello؟ name = Jon + Snowوأخيرًا نعيد الترحيب ، بإلحاق الاسم الذي تم إدخاله في النموذج الخاص بنا.
@get('/hello') def hello(): name = request.query['name'] return f'Hello {name}'