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

รีวิว POCO X8 Pro Max ประสิทธิภาพเทียบเท่าเรือธง ตอบโจทย์ทุกการใช้งานด้วยแบตเตอรี่ 8500mAh

รีวิว POCO X8 Pro Max ประสิทธิภาพเทียบเท่าเรือธง ตอบโจทย์ทุกการใช้งานด้วยแบตเตอรี่ 8500mAh

เจาะลึก POCO X8 Pro Max สมาร์ทโฟนเรือธงใหม่จาก POCO พร้อมชิป Dimensity 9500s, แบตเตอรี่ 8500mAh, ชาร์จ 100W, จอ AMOLED 1.5K และดีไซน์พรีเมียม.

By ทีมงาน devdog
อีซูซุ D-Max EV: ก้าวสำคัญสู่ยุคกระบะไฟฟ้าจากฐานการผลิตไทย

อีซูซุ D-Max EV: ก้าวสำคัญสู่ยุคกระบะไฟฟ้าจากฐานการผลิตไทย

ค้นพบ Isuzu D-Max EV กระบะไฟฟ้า 100% รุ่นแรกของอีซูซุ ที่ผลิตในไทย! พร้อมราคา, สมรรถนะ, แบตเตอรี่, และเทคโนโลยีสุดล้ำ. ก้าวสำคัญสู่โลก EV.

By ทีมงาน devdog
ปาแลร์โม่: ตำนานนกฟีนิกซ์สีชมพู-ดำ สู่การกลับคืนเซเรียอา!

ปาแลร์โม่: ตำนานนกฟีนิกซ์สีชมพู-ดำ สู่การกลับคืนเซเรียอา!

ค้นพบเรื่องราวสุดทึ่งของสโมสรปาแลร์โม่ จากการล้มละลายสู่การลุ้นขึ้นเซเรียอา ด้วยการลงทุนจาก City Football Group และพลังของดาวรุ่ง Niccolò Pierozzi

By ทีมงาน devdog
Samsung Galaxy Z TriFold: ปิดฉากสมาร์ตโฟนจอพับสองทบ หลังเปิดตัวเพียง 3 เดือน – สาเหตุที่แท้จริงคืออะไร?

Samsung Galaxy Z TriFold: ปิดฉากสมาร์ตโฟนจอพับสองทบ หลังเปิดตัวเพียง 3 เดือน – สาเหตุที่แท้จริงคืออะไร?

Samsung Galaxy Z TriFold สมาร์ตโฟนจอพับสองทบสุดล้ำ ปิดฉากลงอย่างรวดเร็วหลังเปิดตัวเพียง 3 เดือน! เจาะลึกเบื้องหลังการตัดสินใจจากซัมซุง

By ทีมงาน devdog