"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > خادم HTTP اختبار بسيط من Flask

خادم HTTP اختبار بسيط من Flask

تم النشر بتاريخ 2024-08-25
تصفح:286

A Simple Test HTTP server from Flask

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

لذلك كان ما أحتاجه هو طريقة لاختبار مكالمات http هذه، ولم يكن الجهاز الذي كنت أستخدمه يحتوي بالفعل على أي خوادم http قيد التشغيل لاستخدامها كهدف.

لا مشكلة: فهو يحتوي على لغة بايثون - وهذا كل ما تحتاجه.

لا تقم بالتثبيت - فقط أنشئ

لقد تم تشكيل هذا النمط بالنسبة لي. بالنسبة للمهام البسيطة، غالبًا ما يكون من الأسهل كتابة برنامج نصي صغير للأداة المساعدة بدلاً من تثبيت بعض البرامج الكاملة للقيام بمهمة ما.

إذا كنت بحاجة إلى خادم حقيقي، فابحث عنه بكل الوسائل (ولكن حتى ذلك الحين أقترح Docker إن أمكن). ولكن إذا كنت تحتاج فقط إلى نقطة نهاية سريعة للاختبار أو لحل حالة استخدام واحدة، فمن المحتمل أن تكون بايثون صديقتك.

أنا أقول بايثون على وجه التحديد لأنها موجودة في كل مكان مع مكتبة قياسية غنية ونظام بيئي.

رمز الخادم

كانت فكرة هذا الخادم البسيط هي مساعدتي في اختبار مكالمات العميل غير المتزامن لذلك أردت الانتظار لمدة 5 ثوانٍ ثم الرد. أردت فقط أن يرد على أي مكالمة عادية برقم 200 بعد 5 ثوانٍ.

from flask import Flask, request
import time

app = Flask(__name__)

@app.route('/', defaults={'path': ''}, methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH'])
@app.route('/', methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH'])
def catch_all(path):
    print(f"Path: {path}")
    print(f"Headers: {dict(request.headers)}")
    print(f"Params: {request.args}")
    print(f"Data: {request.data}")

    # Wait for 5 seconds
    time.sleep(5)

    return "yessir"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/byronsalty/a-simple-test-http-server-from-flask-3lf9؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3