---
title: Bottle
localeTitle: زجاجة
---
يسمح إطار الزجاجة لنا بسرعة وسهولة الحصول على وتشغيل تطبيق ويب أساسي.
التفاصيل التالية هي كيفية كتابة وتشغيل تطبيق ويب ترحيبي بسيط حيث يمكننا إدخال اسمنا في نموذج ، ثم الضغط على "إرسال" واستعادة التحية.
1. استخدم `pip` لتثبيت حزمة الزجاجة.
`pip install bottle
`
2. قم بإنشاء ملف `html` ليتم عرضه عند تحميل الموقع. على سبيل المثال `index.html` .
لنقم بإضافة عنوان ونموذج أساسي لهذه الصفحة.
`
Say Hello
`
3. قم بإنشاء ملف python جديد ، على سبيل المثال `main.py`
4. في السطر الأول من الملف ، نحتاج إلى استيراد ، طلب ، وتشغيل الوظائف من وحدة الزجاجة.
`from bottle import get, request, run
`
5. الآن نحدد وظيفتنا لخدمة ملف html الخاص بنا عندما يتم الوصول إلى صفحة الجذر.
هنا نستخدم مصمم `@get` ، الذي يحدد هذه الوظيفة التي يجب أن تستجيب لطلبات `HTTP GET` وتمريرها في `'/'` باعتبارها المسار الذي سيتم استدعاء الدالة من خلاله.
بعد ذلك ، نقوم بتعريف الدالة `index()` باستخدام الكلمة المفتاحية `def` .
لقراءة ملف html الذي أنشأناه في الخطوة 2 وإرجاعه ، نستخدم ما يسمى مدير السياق. هذا يعالج فتح وإغلاق الملف لنا ، مما يسمح لنا بقراءة الملفات والمحتويات وإعادتها مع بيان `return` .
`@get('/')
def index():
with open('./index.html') as f:
return f.read()
`
6. للحصول على موقع لتشغيل والاستماع لطلبات نحن بحاجة إلى إضافة استدعاء الأطر زجاجة `run` وظيفة على النحو التالي.
هنا نمرر في المضيف الذي سيتم تشغيل تطبيق الويب عليه ، في هذه الحالة `localhost` ، والمنفذ الذي يجب الاستماع إليه لطلبات HTTP.
7. قم بتشغيل التطبيق وقم بتحميله في المستعرض http: // localhost: 8080 / ، يجب أن تشاهد ملف html أنشأنا صانعة شعر في المتصفح.
إذا أدخلنا اسمنا ثم اضغط على تقديم الآن ، `HTTP 404` خطأ `HTTP 404` رغم أننا لم نقم بعد بتعريف الوظيفة للرد على هذا الطلب.
`run(host='localhost', port=8080)
`
8. `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}'
`
### مصادر
https://bottlepy.org/docs/dev/