77 lines
4.0 KiB
Markdown
77 lines
4.0 KiB
Markdown
![]() |
---
|
||
|
title: Bottle
|
||
|
localeTitle: زجاجة
|
||
|
---
|
||
|
يسمح إطار الزجاجة لنا بسرعة وسهولة الحصول على وتشغيل تطبيق ويب أساسي.
|
||
|
|
||
|
التفاصيل التالية هي كيفية كتابة وتشغيل تطبيق ويب ترحيبي بسيط حيث يمكننا إدخال اسمنا في نموذج ، ثم الضغط على "إرسال" واستعادة التحية.
|
||
|
|
||
|
1. استخدم `pip` لتثبيت حزمة الزجاجة.
|
||
|
|
||
|
`pip install bottle
|
||
|
`
|
||
|
|
||
|
2. قم بإنشاء ملف `html` ليتم عرضه عند تحميل الموقع. على سبيل المثال `index.html` .
|
||
|
|
||
|
لنقم بإضافة عنوان ونموذج أساسي لهذه الصفحة.
|
||
|
|
||
|
`
|
||
|
<h3>Say Hello</h3>
|
||
|
|
||
|
<form action="/hello" method="get">
|
||
|
Name:
|
||
|
<input type="text" name="name"><br><br>
|
||
|
<input type="submit">
|
||
|
</form>
|
||
|
`
|
||
|
|
||
|
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/
|