WSGI คืออะไร

WSGI (Web Server Gateway Interface) เกิดขึ้นในปี 2003 โดย Phillip J. Eby ซึ่งเป็นคนก่อตั้งโครงการ Python Paste ซึ่งเป็นชุดเครื่องมือสำหรับการพัฒนาแอปพลิเคชัน web ในภาษา Python ในปี 2003 และได้นำเสนอ WSGI เป็นมาตรฐานที่ช่วยให้นักพัฒนาสามารถเชื่อมต่อแอปพลิเคชัน Python กับเว็บเซิร์ฟเวอร์หลายๆ รูปแบบได้ ทำให้เกิดความยืดหยุ่นและสามารถนำแอปพลิเคชันไปใช้กับเซิร์ฟเวอร์หลายๆ แพลตฟอร์มได้โดยไม่ต้องเปลี่ยนแปลงโค้ดภายในของแอปพลิเคชัน นับว่า WSGI เป็นพื้นฐานที่สำคัญในการพัฒนาแอปพลิเคชันเว็บในภาษา Python ที่ยังคงใช้งานอยู่ในปัจจุบัน

WSGI คือ Web Server Gateway Interface ซึ่งเป็นหนึ่งในอินเทอร์เฟซเกตเวย์ (interface gateway) สำหรับเชื่อมต่อระหว่างเว็บเซิร์ฟเวอร์ (web server) และแอปพลิเคชันเว็บ (web application) ในภาษา Python โดยเฉพาะ ระบบ WSGI อนุญาตให้เว็บเซิร์ฟเวอร์และแอปพลิเคชันเว็บทำงานร่วมกันได้ง่ายขึ้น โดยเว็บเซิร์ฟเวอร์ส่ง request จากผู้ใช้ไปยังแอปพลิเคชันเว็บ และแอปพลิเคชันนั้นจะตอบกลับด้วย response ไปยังเว็บเซิร์ฟเวอร์ และเว็บเซิร์ฟเวอร์จะส่ง response กลับไปยังผู้ใช้

ตัวอย่างของ WSGI application ที่ใช้ Flask คือ:

# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run()

ในตัวอย่างนี้เราใช้ Flask เป็นเฟรมเวิร์กสำหรับเขียนแอปพลิเคชัน WSGI ซึ่งมีส่วนของ WSGI และส่วนของแอปพลิเคชัน (hello function) ที่ถูกเรียกตาม request ที่มาถึง ซึ่ง WSGI จะคอยเป็นตัวกลางในการติดต่อระหว่างเว็บเซิร์ฟเวอร์กับ Flask application ในที่นี้

สำหรับ Django จากตัวอย่างของการใช้งาน WSGI กับ Django สามารถเขียนได้ดังนี้:

# wsgi.py
import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
application = get_wsgi_application()

ในโค้ดนี้เราใช้ get_wsgi_application() เพื่อรับ WSGI application จาก Django และนำมากำหนดให้กับตัวแปร application เพื่อให้เว็บเซิร์ฟเวอร์สามารถเรียกใช้ WSGI application ของ Django ได้ โดยตัวแปร application จะถูกเรียกตาม request ที่เข้ามาในเว็บเซิร์ฟเวอร์

หมายเหตุ: ตั้งแต่ Django version 3 ขึ้นไป นอกจาก WSGI ยังรองรับ ASGI ซึ่งเป็นอีกหนึ่งอินเทอร์เฟซเกตเวย์สำหรับการทำงานแบบ asynchronous ที่มีประสิทธิภาพสูงกว่า WSGI ในบางกรณี การเลือกใช้ WSGI หรือ ASGI ขึ้นอยู่กับว่าแอปพลิเคชันใน Django มีการใช้งาน asynchronous หรือไม่

แนะนำ Framwwork สำหรับใครที่ต้องการทำเว็บไชต์ด้วย เทคโนโลยี่ WSGI

  • Django: Django (< v3) เป็นเฟรมเวิร์ก Python ที่มีความเป็นสมบัติมากมายสำหรับการพัฒนาเว็บแอปพลิเคชันด้าน Backend สร้างมาเพื่อช่วยให้การพัฒนาเว็บแอปพลิเคชันง่ายขึ้น มีการจัดการกับการเชื่อมต่อฐานข้อมูล การจัดการผู้ใช้ การตรวจสอบความถูกต้องของข้อมูลและอื่นๆ

Flask Logo
  • Flask: Flask เป็นเฟรมเวิร์กชนิดหนึ่งที่ใช้กันอย่างแพร่หลายในการพัฒนาเว็บแอปพลิเคชันด้าน Backend ด้วยภาษา Python เป็นเฟรมเวิร์กที่เล็กแต่มีความยืดหยุ่นสูง มันให้คุณพลตามความต้องการและสร้างแอปพลิเคชันในลักษณะที่คุณต้องการ

  • Pyramid: Pyramid คือเฟรมเวิร์กที่ใช้สำหรับการพัฒนาเว็บไซต์ด้าน Backend ใน Python มันมีลักษณะของเครื่องมือที่มีความเป็นสมบัติน้อยกว่า Django แต่ให้คุณความยืดหยุ่นในการออกแบบและกำหนดรูปแบบของแอปพลิเคชันของคุณได้อย่างเต็มที่

  • CherryPy: CherryPy เป็นเฟรมเวิร์ก Python ที่ถูกออกแบบมาเพื่อความรวดเร็ว และเป็นเฟรมเวิร์กที่เล็กกว่า Django แต่มีความสามารถที่จำเป็นในการสร้างแอปพลิเคชันเว็บเบสิค มันให้คุณสร้างแอปพลิเคชันซับซ้อนได้อย่างง่ายดาย

  • TurboGears: TurboGears เป็นเฟรมเวิร์ก Python ที่ใช้ในการสร้างแอปพลิเคชันเว็บเบสิคและซับซ้อน มันใช้ไม่มากเท่า Django แต่มีความสามารถในการการทำงานร่วมกับฐานข้อมูล การทำความเข้าใจระบบ MVC (Model-View-Controller) และเครื่องมืออื่นๆ

Read more

สวีเดน พบ ตูนิเซีย: ศึกเปิดสนามฟุตบอลโลก 2026 กลุ่ม F – ใครจะเหนือกว่ากัน?

สวีเดน พบ ตูนิเซีย: ศึกเปิดสนามฟุตบอลโลก 2026 กลุ่ม F – ใครจะเหนือกว่ากัน?

วิเคราะห์เจาะลึกแมตช์เดือด สวีเดน พบ ตูนิเซีย ฟุตบอลโลก 2026 กลุ่ม F พร้อมรายชื่อนักเตะ การวิเคราะห์เกมรุก-รับ และช่องทางดูบอลสด

By ทีมงาน devdog
ลือสะเทือนวงการ! HUAWEI Mate 90 series เตรียมเขย่าตลาดด้วย 5 รุ่นรวด พร้อม "Fan Edition" ทรงพลัง

ลือสะเทือนวงการ! HUAWEI Mate 90 series เตรียมเขย่าตลาดด้วย 5 รุ่นรวด พร้อม "Fan Edition" ทรงพลัง

เตรียมพบกับ HUAWEI Mate 90 series ที่ลือว่าจะเปิดตัว 5 รุ่นรวด รวมถึง Fan Edition พร้อมเทคโนโลยีระบายความร้อน 3D Liquid-Cooling สุดล้ำ คาดการณ์กันยายนนี้!

By ทีมงาน devdog
อัปเดตล่าสุด: ราคาน้ำมันเบนซิน แก๊สโซฮอล์ และดีเซลวันนี้ (15 มิ.ย. 69) พร้อมแนวโน้มตลาด

อัปเดตล่าสุด: ราคาน้ำมันเบนซิน แก๊สโซฮอล์ และดีเซลวันนี้ (15 มิ.ย. 69) พร้อมแนวโน้มตลาด

เช็กราคาน้ำมันเบนซิน แก๊สโซฮอล์ และดีเซลล่าสุด 15 มิ.ย. 69 จาก ปตท. บางจาก เชลล์ และปั๊มอื่น ๆ พร้อมข้อมูลการปรับลดราคา วางแผนการเดินทางได้เลย!

By ทีมงาน devdog
เจาะลึก! iOS 27 กับ 3 ฟีเจอร์ลับที่ Apple ยังไม่เปิดตัว คาดเตรียมเซอร์ไพรส์กันยายนนี้

เจาะลึก! iOS 27 กับ 3 ฟีเจอร์ลับที่ Apple ยังไม่เปิดตัว คาดเตรียมเซอร์ไพรส์กันยายนนี้

Mark Gurman เผย iOS 27 มี 3 ฟีเจอร์ลับ Siri AI เชื่อมต่อภายนอก, กล้องปรับแต่งได้, หน้าปัด Apple Watch Ultra ใหม่ คาดเปิดตัวพร้อม iPhone 18 เดือน ก.ย. นี้

By ทีมงาน devdog