ขับเคลื่อนโดยสตาร์เล็ต การประกาศ async
นั้นเป็นทางเลือก ดูเอกสารประกอบ
สิ่งนี้จะทำให้คุณได้รับแอป ASGI พร้อมเซิร์ฟเวอร์ไฟล์สแตติกที่ใช้งานจริงที่ติดตั้งไว้ล่วงหน้า การสร้างเทมเพลต Jinja (โดยไม่ต้องนำเข้าเพิ่มเติม) และเว็บเซิร์ฟเวอร์ที่ใช้งานจริงที่ใช้ uvloop ซึ่งให้บริการคำขอด้วยการบีบอัด gzip โดยอัตโนมัติ
"ยินดีเป็นอย่างยิ่งกับ python-responder @kennethreitz สุดยอดของเขา" —รุทรักษ์ เอ็มเค
"ASGI จะเปิดใช้บริการเว็บประสิทธิภาพสูงใหม่ๆ ทุกประเภท เป็นเรื่องดีที่ได้เห็น Responder เริ่มใช้ประโยชน์จากสิ่งนั้น" — Tom Christie ผู้เขียน Django REST Framework
"ฉันชอบที่คุณกำลังสำรวจรูปแบบใหม่ ไปไปไป!" — แดนนี่ กรีนฟิลด์ ผู้แต่ง Two Scoops of Django
ดูทัวร์คุณลักษณะของเอกสารประกอบสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับคุณลักษณะที่มีอยู่ใน Responder
ติดตั้งเวอร์ชันเสถียรล่าสุด:
pip install --upgrade 'responder'
รวมการสนับสนุนสำหรับส่วนขยายและอินเทอร์เฟซทั้งหมด:
pip install --upgrade 'responder[full]'
อุปกรณ์เสริมพิเศษในการติดตั้งส่วนบุคคลได้แก่:
หรือติดตั้งโดยตรงจากพื้นที่เก็บข้อมูล:
pip install 'responder[full] @ git+https://github.com/kennethreitz/responder.git'
Responder รองรับ Python 3.6+
แนวคิดหลักที่นี่คือการนำคุณสมบัติดีๆ ที่ได้มาจากทั้ง Flask และ Falcon มารวมกันเป็นกรอบงานเดียว พร้อมด้วยแนวคิดใหม่ๆ ที่ฉันมี ฉันยังต้องการนำ API ดั้งเดิมบางส่วนที่ปลูกฝังไว้ในไลบรารีคำขอมาใส่ไว้ในเฟรมเวิร์กของเว็บ ดังนั้นคุณจะพบความคล้ายคลึงกันมากมายที่นี่กับคำขอ
resp.content
จะส่งไบต์กลับresp.text
จะส่งยูนิโค้ดกลับไป ในขณะที่การตั้งค่า resp.html
จะส่ง HTML กลับresp.media
จะส่ง JSON/YAML กลับมา ( .text
/ .html
/ .content
แทนที่สิ่งนี้)req.headers
dict ที่ไม่คำนึงถึงขนาดตัวพิมพ์ (จากคำขอโดยตรง)resp.status_code
, req.method
, req.url
และเพื่อนที่คุ้นเคยคนอื่นๆ response.media
และได้ใช้มันที่นี่ นอกเหนือจากการรองรับ JSON แล้ว ฉันยังได้ตัดสินใจสนับสนุน YAML ด้วยเช่นกัน เนื่องจาก Kubernetes กำลังเข้ายึดครองโลกอย่างช้าๆ และใช้ YAML สำหรับทุกสิ่ง การเจรจาเนื้อหาและทั้งหมดนั้นon_get
, on_post
ฯลฯ ของ Falcon แล้ว Responder ยังมีเมธอด on_request
ซึ่งจะถูกเรียกใช้กับคำขอทุกประเภท เช่นเดียวกับ Requestsดูแซนด์บ็อกซ์การพัฒนา