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

iOS 27: เตรียมพบกับ 3 เครื่องมือ AI แต่งภาพสุดล้ำในแอป Photos ทั้ง Extend, Enhance และ Reframe

iOS 27: เตรียมพบกับ 3 เครื่องมือ AI แต่งภาพสุดล้ำในแอป Photos ทั้ง Extend, Enhance และ Reframe

เตรียมพบกับยุคใหม่แห่งการแต่งภาพบน iPhone ด้วย iOS 27! Apple จ่อเพิ่ม AI Tools ใหม่ในแอป Photos ทั้ง Extend, Enhance, Reframe ให้คุณสร้างสรรค์ภาพสวยง่ายดาย

By ทีมงาน devdog
ฉลอง 20 ปี Google Translate เปิดตัวฟีเจอร์ AI ฝึกออกเสียงเรียลไทม์ตามคำเรียกร้อง!

ฉลอง 20 ปี Google Translate เปิดตัวฟีเจอร์ AI ฝึกออกเสียงเรียลไทม์ตามคำเรียกร้อง!

Google Translate ฉลอง 20 ปี! เปิดตัวฟีเจอร์ AI ช่วยฝึกออกเสียงแบบเรียลไทม์ ตอบโจทย์คนอยากเก่งภาษา พร้อมวิเคราะห์และให้คำแนะนำทันที

By ทีมงาน devdog
PPV คืออะไร? เจาะลึกปรากฏการณ์ Pay-Per-View กับอีเวนต์สุดพิเศษแห่งยุค

PPV คืออะไร? เจาะลึกปรากฏการณ์ Pay-Per-View กับอีเวนต์สุดพิเศษแห่งยุค

ทำความเข้าใจ Pay-Per-View (PPV) กับเทรนด์การรับชมอีเวนต์สุดพิเศษ ทั้งศึก ONE Championship, คอนเสิร์ต Project Sekai และความบันเทิงหลากหลายผ่าน ABEMA PPV.

By ทีมงาน devdog