4.0 KiB
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}'