Skip to content

ตัวอย่างการทำ Web Server CGI ใน Python 3

บทความนี้ต่อจาก บทความ ใช้ CGI ใน Python และวิธีตั้งค่ากับ Apache ครับ ใน Python มีความสามารถในการสร้าง Web Server อยู่ และมี Web Framework ของ Python นำความสามารถนี้ไปใช้งาน เช่น Django , Flask เป็นต้น บทความนี้จะพาผู้อ่านไปสร้าง Web Server CGI ด้วยภาษา Python 3 เพื่อเรียกใช้งาน CGI กันครับ

ใน Python 3 จะมีโมดูลมาตรฐานหนึ่งที่ชื่อว่า http.server ผมเขียนโค้ดส่วน Web Server CGI ตามนี้

import http.server

class Handler(http.server.CGIHTTPRequestHandler):
    cgi_directories = ["/"] #โฟลเดอร์ที่ใช้ดึงไฟล์ cgi ในภาษา Python

server = http.server.HTTPServer(("",8000),Handler) #กำหนด ที่อยู่ , port เพื่อใช้ในการกำหนดค่า HTTPServer
server.serve_forever()

อธิบายเพิ่มเติมจากโค้ด
ตรงบรรทัด server = http.server.HTTPServer(("",8000),Handler) ที่ "" ใช้สำหรับกำหนดที่อยู่ Server ครับ ปกติค่าจะเป็น localhost หรือ 127.0.0.1 อยู่แล้วครับ ต่อมา 8000 คือ port ที่ใช้แสดงหน้าเว็บครับ ผมใช้ port 8000

ผมบันทึกเป็นไฟล์ server.py ต่อมาผมเขียนไฟล์ CGI ชื่อว่า hello_word.py

#!C:\Python34\python.exe

print("Content-Type: text/plain;charset=utf-8")
print()
print("Hello World!")

แลัวบันทึกไฟล์ในโฟลเดอร์เดียวกันกับ server.py เสร็จผมรันไฟล์ server.py โดยใช้คำสั่ง

python server.py

แล้วเข้าไปที่ http://127.0.0.1:8000/hello_word.py
จะพบกับหน้าเว็บ Hello World! ที่ผมเขียนไว้ครับ

หากเราต้องการกำหนดค่า CGI ในตัวเลย สามารถกำหนดได้ตามตัวอ่างนี้ครับ

import http.server
HOST_NAME = "127.0.0.1"
hostPort = 8088
class MyHandler(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
           self.send_response(200)
           self.send_header("Content-type", "text/html")
           self.end_headers()
           print(self.wfile)
           content = ["<html><head><title>The Title</title></head>",
                   "<body>This is a test."]
           self.wfile.write("".join(content).encode("UTF-8"))
server_class = http.server.HTTPServer
httpd = server_class((HOST_NAME, hostPort),MyHandler)
httpd.serve_forever()

เมื่อเรียก 127.0.0.1:8088 จะพบกับ

This is a test.

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories web-developerTags

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

2 thoughts on “ตัวอย่างการทำ Web Server CGI ใน Python 3

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *