เรียนรู้ WSGI และปล่อยให้ Python ขับสิ่งเล็ก ๆ น้อย ๆ

การเปิดเผยข้อมูล: การสนับสนุนของคุณช่วยให้เว็บไซต์ทำงานต่อไป! เราได้รับค่าธรรมเนียมการอ้างอิงสำหรับบริการบางอย่างที่เราแนะนำในหน้านี้.


ย้อนกลับไปในวันนั้นการพัฒนาเว็บแอปพลิเคชั่นใน Python เคยเป็นปัญหาเพราะนักพัฒนาต้องระมัดระวังเป็นพิเศษและมั่นใจว่าเว็บแอปพลิเคชั่นของพวกเขาจะทำงานบนเว็บเซิร์ฟเวอร์ที่แตกต่างกันได้อย่างราบรื่น ทางเลือกของเฟรมเวิร์กเว็บ Python ที่เจาะจงในระหว่างการพัฒนาแอปพลิเคชัน จำกัด ทางเลือกของเว็บเซิร์ฟเวอร์ที่ใช้งานร่วมกันได้ซึ่งสามารถเรียกใช้แอปพลิเคชันที่เสร็จสิ้นแล้วได้.

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

แน่นอนว่า Python ไม่ใช่ภาษาการเขียนโปรแกรมเพียงอย่างเดียวที่มีข้อกำหนดคุณสมบัติมาตรฐาน ภาษาการเขียนโปรแกรมที่ทันสมัยจำนวนมากใช้วิธีการเดียวกันดังนั้นตัวอย่างเช่น Ruby ใช้ส่วนต่อประสาน Rack server ของตัวเองจาวาสคริปต์นั้นใช้ JSGI gateway interface ในขณะที่ Perl ใช้ PSGI.

ประวัติย่อ

ข้อกำหนดของ WSGI นั้นถูกนำมาใช้ใน Python Enhancement Proposal 333 (PEP 333) ซึ่งเขียนโดย Phillip J Eby และเผยแพร่ในเดือนธันวาคม 2003 ร่างข้อกำหนด WSGI เริ่มต้นนี้วางหลักการพื้นฐานและเป้าหมายสำหรับ WSGI – เพื่อให้ง่ายต่อการใช้งาน เรียบง่ายและเป็นสากลและต้องอำนวยความสะดวกในการเชื่อมต่อระหว่างกันของเซิร์ฟเวอร์และกรอบงานที่มีอยู่.

WSGI ได้รับการนำไปใช้อย่างรวดเร็วโดยเซิร์ฟเวอร์ Python และผู้เขียนและผู้พัฒนากรอบงานและกลายเป็นมาตรฐานแท้จริงสำหรับการพัฒนาโปรแกรมประยุกต์บนเว็บของ Python WSGI รุ่นล่าสุดคือ V1.0.1 ซึ่งเผยแพร่ใน PEP 3333 ในวันที่ 26 กันยายน 2010.

ภาพรวมข้อมูลจำเพาะของ WSGI

ข้อมูลจำเพาะ WSGI ประกาศบทบาทเฉพาะสามประการ: ฝั่งเซิร์ฟเวอร์ด้านแอปพลิเคชันและส่วนประกอบมิดเดิลแวร์ซึ่งใช้ทั้งเซิร์ฟเวอร์และด้านแอปพลิเคชันของอินเทอร์เฟซ.

ด้านการใช้งาน

ด้านแอปพลิเคชันของ WSGI เป็นวัตถุง่าย ๆ ที่ยอมรับสองอาร์กิวเมนต์และสามารถเรียกใช้จากรหัส ตัวอย่างนี้แสดงแอ็พพลิเคชัน WSGI แบบง่ายที่ส่งคืนสแตติก“ Hello world!” หน้า:

def simple_app (environ, start_response):
สถานะ = ‘200 ตกลง’
response_headers = [(‘ประเภทเนื้อหา’, ‘ข้อความ / ธรรมดา’)]
start_response (สถานะการตอบกลับหัวเรื่อง)
ส่งคืน [‘Hello world! n’]

แอปพลิเคชันด้านวัตถุสามารถเรียกใช้หลายครั้งเนื่องจากเซิร์ฟเวอร์ทั้งหมดทำการร้องขอซ้ำ ๆ.

ฝั่งเซิร์ฟเวอร์

ฝั่งเซิร์ฟเวอร์ของ WSGI เพียงแค่รับคำขอจากไคลเอนต์ HTTP เรียกใช้แอปพลิเคชันหนึ่งครั้งสำหรับแต่ละคำขอและส่งการตอบกลับที่ส่งคืนโดยแอปพลิเคชันไปยังไคลเอนต์.

ส่วนประกอบ Middleware

ส่วนประกอบมิดเดิลแวร์ที่กำหนดไว้ในข้อมูลจำเพาะ WSGI ใช้ทั้งสองด้านของอินเทอร์เฟซ – ด้านแอปพลิเคชันเช่นเดียวกับฝั่งเซิร์ฟเวอร์ ฟังก์ชั่น Middleware มีความโปร่งใสทั้งฝั่งเซิร์ฟเวอร์และฝั่งแอพพลิเคชัน.

ส่วนประกอบมิดเดิลแวร์มักจะทำหน้าที่ preform เช่นคำขอการกำหนดเส้นทางไปยังวัตถุแอปพลิเคชันที่แตกต่างกันตาม URL เป้าหมายช่วยให้แอปพลิเคชันหลายตัวสามารถทำงานเคียงข้างกันในกระบวนการเดียวกัน พวกเขาเปิดใช้งานสมดุลภาระการประมวลผลระยะไกลหรือการโพสต์เนื้อหา.

ตัวอย่างนี้แสดงองค์ประกอบมิดเดิลแวร์แบบธรรมดาที่พิมพ์ทุกอย่างที่ได้รับ:

คลาส Upperware:
def __init __ (self, app):
self.wrapped_app = แอป

def __call __ (ตนเอง, สภาพแวดล้อม, start_response):
สำหรับข้อมูลใน self.wrapped_app (environ, start_response):
ส่งคืน data.upper ()

ใช้ WSGI

WSGI ได้รับการยอมรับว่าเป็นมาตรฐานสำหรับการพัฒนาโปรแกรมประยุกต์บนเว็บ Python Python เวอร์ชั่น 2.5 และฟีเจอร์ใหม่ ๆ ที่ตามมาฝังการสนับสนุน WSGI ใน Python เวอร์ชัน 2.4 และก่อนหน้านั้นการสนับสนุน WSGI สามารถติดตั้งแยกกันได้ รุ่นข้อมูลจำเพาะ WSGI ที่อัปเดตแล้วที่ประกาศใน PEP 3333 พร้อมใช้งานสำหรับ Python 3.

หากคุณกำลังพัฒนาเว็บแอปพลิเคชั่นใน Python เพียงใช้มาตรฐานที่พิสูจน์แล้วในอุตสาหกรรมเช่น Django, Flask หรือเว็บเฟรมเวิร์กของ Python หรือเฟรมเวิร์ก Python ปัจจุบันอื่น ๆ ไม่จำเป็นต้องเรียนรู้มากเกี่ยวกับข้อมูลจำเพาะ WSGI เพื่อสร้างแอปพลิเคชัน เพียงใช้เฟรมเวิร์กเว็บแอปพลิเคชั่นรุ่นใดก็ได้ในปัจจุบันและคุณควรชัดเจนเพราะพวกเขาทั้งหมดสนับสนุน WSGI.

ในทางตรงกันข้ามถ้าคุณกำลังพัฒนาเฟรมเวิร์กแอปพลิเคชันเว็บใหม่ด้วยตัวเองคุณควรจะดูข้อมูลจำเพาะ WSGI และดูแหล่งข้อมูลการเรียนรู้สำหรับ WSGI.

ทรัพยากร WSGI

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ WSGI เราขอแนะนำให้ดูที่แหล่งข้อมูลออนไลน์ต่อไปนี้:

  • เว็บไซต์ชุมชน WSGI เป็นที่แรกที่ต้องไป คุณสามารถค้นหาแหล่งข้อมูลที่มีประโยชน์มากมายและยังมีส่วนเรียนรู้เกี่ยวกับ WSGI ที่ดี ไซต์นี้ยังแสดงรายการเฟรมเวิร์กและเซิร์ฟเวอร์ที่รองรับ WSGI.
  • คุณสามารถอ่านข้อเสนอการปรับปรุง Python แบบเต็ม 333 และข้อเสนอการปรับปรุงแบบหลาม 3333 สำหรับข้อมูลเพิ่มเติม.
  • Pylons Web Development Framework เอกสารออนไลน์มีส่วนที่ดีและมีรายละเอียดเกี่ยวกับ WSGI.
  • WSGI Tutorial ของ Codepoint จะสาธิตข้อกำหนด WSGI ในที่ทำงานโดยใช้ตัวอย่างง่ายๆ.

หนังสือ WSGI

หนังสือที่ครอบคลุม WSGI โดยเฉพาะนั้นหายากและคุณมักจะพบบทที่เกี่ยวข้องกับ WSGI ในหนังสือการเขียนโปรแกรมเว็บแอพพลิเคชั่นของ Python เช่นนี้

  • พื้นฐานของการเขียนโปรแกรมเครือข่าย Python: คู่มือที่ครอบคลุมสำหรับการสร้างเครือข่าย Ppplications ด้วย Python โดย Goerzen, Bower และ Rhodes: บทในการเขียนโปรแกรมเว็บแอพพลิเคชั่นครอบคลุมทั้งมาตรฐาน WSGI สำหรับการทำงานร่วมกันขององค์ประกอบเช่นเดียวกับเฟรมเวิร์คเว็บสมัยใหม่เช่น Django.

ข้อสรุป

WSGI เป็นข้อกำหนด Python ที่สำคัญ แต่ในความเป็นจริงแล้วนักพัฒนา Python ส่วนใหญ่ไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนี้ ตราบใดที่พวกเขาใช้เฟรมเวิร์กที่สำคัญพวกเขาจะได้รับประโยชน์จาก WSGI โดยไม่ให้ความคิดที่สอง กล่าวอีกนัยหนึ่งนักพัฒนาส่วนใหญ่ไม่ต้องการความรู้ที่ใกล้ชิดกับ WSGI เนื่องจากข้อกำหนดดังกล่าวถูกนำไปใช้ในกรอบงาน Python ที่สำคัญทั้งหมด.

ที่กล่าวว่า WSGI ยังคงมีความเกี่ยวข้องแม้ว่าจะไม่ใช่ข้อกำหนดเบื้องต้นสำหรับการเขียนโปรแกรม Python ข้อยกเว้นที่น่าสังเกตประการประการหนึ่งเกี่ยวข้องกับวิศวกรซอฟต์แวร์ที่ตัดสินใจทำงานกับ Python framework มากกว่า Python applications เท่าที่พวกเขามีความกังวล WSGI เป็นข้อมูลจำเพาะที่ขาดไม่ได้และพวกเขาต้องรู้รายละเอียดของ WSGI หากพวกเขาหวังว่าจะรวมไว้ในกรอบงานของพวกเขา.

เห็นได้ชัดว่านี่เป็นช่องที่แคบมาก แต่ไม่ได้หมายความว่าการพัฒนา WSGI จะหยุดชะงัก มันหมายความว่าชุมชนนั้นไม่ใหญ่ แต่ก็อยู่ที่นั่น.

การอ่านและทรัพยากรเพิ่มเติม

เรามีคำแนะนำเพิ่มเติมบทแนะนำและอินโฟกราฟิกที่เกี่ยวข้องกับการเข้ารหัสและการพัฒนา:

  • Python Introduction, Resources, และคำถามที่พบบ่อย: ถ้าคุณยังใหม่กับ Python บทนำนี้จะพาคุณไป.
  • MPI – บทนำ, ประวัติและทรัพยากร: Message Passing Interface (MPI) อนุญาตให้โปรแกรมและระบบคอมพิวเตอร์อื่น ๆ ส่งข้อความถึงกัน.
  • คำแนะนำและแหล่งข้อมูลเกี่ยวกับการเขียนโปรแกรม Linux: การดำน้ำลึกในการเขียนโปรแกรมลีนุกซ์จะลงไปในเคอร์เนลซึ่งการกระทำทั้งหมดนั้นคืออะไร.

คุณควรเรียนรู้รหัสใด?

สับสนเกี่ยวกับภาษาการเขียนโปรแกรมใดที่คุณควรเรียนรู้ที่จะใช้รหัส? ตรวจสอบอินโฟกราฟิกของเราคุณควรเรียนรู้รหัสใด ไม่เพียง แต่พูดถึงแง่มุมต่าง ๆ ของภาษาเท่านั้น แต่ยังตอบคำถามสำคัญเช่น“ ฉันต้องใช้เงินเท่าไหร่ในการเขียนโปรแกรม Java เพื่อการใช้ชีวิต?”

คุณควรเรียนรู้รหัสใด
คุณควรเรียนรู้รหัสใด?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map