كيفية استخدام Python SimpleHTTPServer

How Use Python Simplehttpserver



تتمثل المهمة الرئيسية لخادم الويب في معالجة طلبات HTTP من العميل. ينتظر طلبات HTTP الواردة من عنوان IP ورقم المنفذ المعينين ، ويتعامل مع الطلب ، ويرسل استجابة العميل مرة أخرى. تستخدم Python امتداد SimpleHTTPServer وحدة لإنشاء خادم ويب على الفور وخدمة محتوى الملف من الخادم بسهولة. يمكن استخدامه لمشاركة الملفات أيضًا. لهذا ، يجب عليك تمكين هذه الوحدة مع موقع الملفات القابلة للمشاركة. تأتي هذه الوحدة مع مترجم بايثون. لا تحتاج إلى تثبيته. منذ أن تم دمج هذه الوحدة مع http.server وحدة في python3 ، لذلك عليك تشغيل http.server لتشغيل خادم الويب في python3. تم عرض كيفية استخدام خادم الويب للتعامل مع طلب HTTP ومشاركة الملفات في هذا البرنامج التعليمي.

قم بتشغيل خادم الويب من المحطة

قم بتشغيل الأمر التالي لتشغيل خادم الويب من المحطة. إذا لم يتم تحديد رقم منفذ في الأمر ، فسيبدأ خادم الويب عند 8000 منفذ افتراضيًا.







$ python3 -m http.الخادم



سيظهر الإخراج التالي إذا تم تشغيل خادم الويب بشكل صحيح. يتم الضغط على CTRL + C لإيقاف الخادم.




قم بتشغيل الأمر التالي لبدء خادم الويب عند منفذ 8080.





$ python3 -m http.الخادم 8080

سيظهر الإخراج التالي إذا تم تشغيل خادم الويب في منفذ 8080.



قم بتشغيل خادم الويب باستخدام برنامج Python النصي

قم بتشغيل الأوامر التالية لإنشاء مجلد باسم الويب وانتقل إلى المجلد. سيتم إنشاء جميع ملفات البرامج النصية وملفات HTML الخاصة بهذا البرنامج التعليمي داخل هذا المجلد.

ويب mkdir $

$قرص مضغوطالويب

قم بإنشاء ملف HTML يسمى testHTML.html داخل الويب مجلد بالنص التالي. سيتم تقديم هذا الملف من خادم الويب لاحقًا.

testHTML.html

< لغة البرمجة >

< رئيس >

< لقب >

اختبر خادم ويب Python

</ لقب >

</ رئيس >

< هيئة >

< المركز >

< IMG src='logo.jpeg' كل شىء='الصورة غير موجودة'/>

< h2 نمط='الون الاخضر'>تهنئة! خادم الويب الخاص بك يعمل بنجاح.</ h2 >

< ص >يزور< إلى href='www.linuxhint.com'>LinuxHint.com</ إلى >لمزيد من الدروس حول بايثون</ ص >

</ المركز >

</ هيئة >

</ لغة البرمجة >

مثال 1: قم بتشغيل خادم الويب في رقم المنفذ المحدد

قم بإنشاء ملف python باستخدام البرنامج النصي التالي لتشغيل خادم الويب على منفذ 8008. http.server تم استيراد الوحدة النمطية لتشغيل خادم الويب ، و SocketServer تم استيراد الوحدة النمطية للتعامل مع طلب HTTP القادم من منفذ 8080. كائن اسمه معالج تم إنشاؤه للتعامل مع طلبات HTTP. مدى الحياة() يتم استدعاء الوظيفة لتشغيل خادم الويب. لم تتم إضافة أي شرط إنهاء إلى البرنامج النصي. لذلك ، سينشئ البرنامج النصي خطأ عندما يحاول المستخدم إيقاف الخادم.

# وحدة خادم الاستيراد

يستوردhttp.الخادم

# وحدة استيراد SocketServer

يستوردمآخذ التوصيل


# تعيين رقم المنفذ

ميناء= 8080

# إنشاء كائن للتعامل مع طلبات HTTP

معالج=http.الخادم.SimpleHTTPRequestHandler


# قم بتشغيل الخادم إلى الأبد للتعامل مع طلبات HTTP

معمآخذ التوصيل.TCPServer(('وميناء)ومعالج) كماhttpd:

مطبعة('خادم ويب يعمل على http: // localhost:٪ s'٪ميناء)

httpd.خدمة للأبد()

انتاج |

سيظهر الإخراج التالي بعد تنفيذ البرنامج النصي أعلاه.


سيتم عرض قائمة الملفات والمجلدات الخاصة بموقع البرنامج النصي إذا تم تنفيذ عنوان URL التالي من المستعرض.

http: // localhost: 8080

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

مثال 2: قم بتشغيل خادم الويب برقم المنفذ المحدد بواسطة سطر الأوامر

قم بإنشاء ملف python باستخدام البرنامج النصي التالي لتشغيل خادم ويب في منفذ معين إذا كانت وسيطة سطر الأوامر تعطي رقم المنفذ ؛ وإلا ، سيتم استخدام 5000 كمنفذ افتراضي. sys تم استيراد الوحدة النمطية في البرنامج النصي لقراءة قيم وسيطة سطر الأوامر. حاول باستثناء تمت إضافة block في البرنامج النصي لمعالجة الخطأ عندما يحاول المستخدم إيقاف الخادم. إذا ظهر استثناء KeyboardInterrupt بعد تشغيل الخادم ، فإن ملف أغلق() سيتم استدعاء وظيفة لإيقاف خادم الويب.

# وحدة خادم الاستيراد

يستوردhttp.الخادم

# وحدة استيراد SocketServer

يستوردمآخذ التوصيل

# استيراد وحدة النظام

يستورد sys


محاولة:

# تعيين رقم المنفذ

لو sys.أرجف[1:]:

ميناء= int(sys.أرجف[1])

آخر:

ميناء= 5000

# تعيين عنوان IP

عنوان المستقبل= ('127.0.0.1'وميناء)

# إنشاء كائن للتعامل مع طلبات HTTP

معالج=http.الخادم.SimpleHTTPRequestHandler


# قم بتشغيل خادم الويب إلى الأبد للتعامل مع طلبات HTTP

معمآخذ التوصيل.TCPServer(('وميناء)ومعالج) كماhttpd:

مطبعة('خادم ويب يعمل على http: // localhost:٪ s'٪ميناء)

httpd.خدمة للأبد()

# توقف الخادم

إلا لوحة المفاتيح المقاطعة:

httpd.server_close()

مطبعة('تم إيقاف الخادم'.)

انتاج |

سيظهر الإخراج التالي بعد تنفيذ البرنامج النصي أعلاه بدون قيمة وسيطة سطر الأوامر.

سيظهر الإخراج التالي إذا تم تشغيل ملف HTML الذي تم إنشاؤه في الخطوة السابقة من خادم الويب.

افتح مربع حوار التكوين من قائمة التشغيل لمحرر PyCharm لتعيين قيمة وسيطة سطر الأوامر. يتم استخدام حقل المعلمات لتعيين وسيطة سطر الأوامر ، ويتم تعيين 3000 هنا كقيمة وسيطة.

سيظهر الإخراج التالي إذا قمت بتشغيل البرنامج النصي مرة أخرى بعد تعيين قيمة الوسيطة.

مثال 3: قم بتشغيل خادم الويب باستخدام ملف HTML

قم بإنشاء ملف python باستخدام البرنامج النصي التالي لتشغيل خادم الويب عن طريق تحديد ملف HTML لعنوان URL الأساسي. تم تحديد اسم المضيف ورقم المنفذ في بداية البرنامج النصي. PythonServer تم تعريف class في البرنامج النصي لعرض ملف HTML في المستعرض عند بدء تشغيل خادم الويب.

# استيراد وحدة الخادم

يستوردhttp.الخادم


# تعيين اسم المضيف

مضيف= 'مضيف محلي'

# تعيين رقم المنفذ

ميناء= 4000


# تحديد فئة لعرض صفحة الفهرس لخادم الويب

صف دراسيPythonServer(http.الخادم.SimpleHTTPRequestHandler):

defلا تحصل(الذات):

لو الذات.طريق == '/':

الذات.طريق = 'testHTML.html'

إرجاعhttp.الخادم.SimpleHTTPRequestHandler.لا تحصل(الذات)


# إعلان كائن من الفصل

قاعدة بيانات للانترنت=http.الخادم.HTTPServer((مضيفوميناء)وPythonServer)


# طباعة عنوان URL لخادم الويب

مطبعة('بدأ الخادم http: //٪ s:٪ s'٪(مضيفوميناء))


محاولة:

# قم بتشغيل خادم الويب

قاعدة بيانات للانترنت.خدمة للأبد()

إلا لوحة المفاتيح المقاطعة:

# إيقاف خادم الويب

قاعدة بيانات للانترنت.server_close()

مطبعة('تم إيقاف الخادم'.)

انتاج |

سيظهر الإخراج التالي تنفيذ البرنامج النصي أعلاه.

ستظهر الصفحة التالية في المتصفح إذا تم تنفيذ عنوان URL الأساسي لخادم الويب الخاص بالمتصفح.

استنتاج

الطرق المختلفة لتنفيذ خوادم الويب باستخدام http. الخادم الوحدة النمطية في هذا البرنامج التعليمي لمساعدة مستخدمي Python على إنشاء خادم ويب بسيط في Python.