กรอบพีระมิด
Pyramid เป็นเฟรมเวิร์กการพัฒนาเว็บแอปพลิเคชันแบบโอเพนซอร์สทั่วไปที่สร้างขึ้นใน python ช่วยให้นักพัฒนา python สร้างเว็บแอปพลิเคชันได้อย่างง่ายดาย
พีระมิดได้รับการสนับสนุนโดยระบบการจัดการความรู้ขององค์กร KARL (โครงการ George Soros)การติดตั้งเริ่มต้นและกำหนดค่า
ตามที่อธิบายไว้ว่า“ การเริ่มต้นเล็ก ๆ การทำให้ใหญ่จบกรอบการทำงานให้เสร็จ” Pyramid ก็เหมือนกับ Flask ซึ่งใช้ความพยายามเพียงเล็กน้อยในการติดตั้งและเรียกใช้ ในความเป็นจริงคุณจะรู้ว่ารูปแบบบางส่วนนั้นคล้ายกับ Flask เมื่อคุณเริ่มสร้างแอปพลิเคชันนี้
ต่อไปนี้เป็นขั้นตอนในการสร้างสภาพแวดล้อมกรอบปิรามิด -
ขั้นแรกสร้างไดเร็กทอรีโครงการ ที่นี่เราได้สร้างไดเร็กทอรีชื่อpyramidProject (คุณสามารถเลือกชื่อใดก็ได้ที่คุณต้องการ)
จากนั้นสร้างสภาพแวดล้อมเสมือนที่คุณจะติดตั้งการอ้างอิงเฉพาะโครงการทั้งหมด ที่นี่เราสร้างโฟลเดอร์สภาพแวดล้อมเสมือนชื่อpyramidEnv ที่ติดตั้งพีระมิด
จากนั้นไปที่ไดเร็กทอรี pyramidEnv และติดตั้งพีระมิดด้วย pip install pyramid.
เมื่อทุกอย่างเสร็จสิ้นตามที่กล่าวไว้ข้างต้นโครงสร้างไดเร็กทอรีของคุณจะเป็นดังที่แสดงด้านล่าง -
และเวอร์ชันปิรามิดที่ติดตั้งในระบบจะได้รับด้านล่าง -
แนวคิดหลัก
กรอบพีระมิดเป็นไปตามแนวคิดหลักด้านล่าง -
Zope (ความสามารถในการขยาย, การข้ามผ่าน, การรักษาความปลอดภัยที่เปิดเผย) - พีระมิดมีพื้นฐานมาจาก Zope อย่างหลวม ๆ ในแง่ของความสามารถในการขยายตัวแนวคิดของการข้ามผ่านและการรักษาความปลอดภัยที่เปิดเผย
Pylons(การจัดส่ง URL, มุมมองที่ไม่มีความเห็นเกี่ยวกับการคงอยู่, เทมเพลต ฯลฯ ) - อีกจุดหนึ่งที่พีระมิดใช้แนวคิดของมันคือโครงการเสา Pylons มีแนวคิดเรื่องเส้นทางที่เรียกการส่ง URL ภายในกรอบพีระมิดและยังมีมุมมองที่ไม่ได้ให้ความเห็นเกี่ยวกับเลเยอร์การคงอยู่หรือเทมเพลต
Django(ดูระดับของเอกสารประกอบ) - พีระมิดยังได้รับคำแนะนำจาก Django วิธีที่เราใช้มุมมองกำหนดเส้นทาง URL ของเราและระดับของเอกสารเป็นวิธีที่ Django มาก
ต่อไปนี้เป็นคุณสมบัติของกรอบพีระมิด -
เป็นเว็บเฟรมเวิร์ก Python ที่รู้จักกันเร็วที่สุด
รองรับโครงการขนาดเล็กและขนาดใหญ่ (ทำไมต้องเขียนซ้ำเมื่อคุณโตเร็วกว่ากรอบงานขนาดเล็กของคุณ)
รองรับ webapps ไฟล์เดียวเช่น microframeworks
มีเซสชันในตัว
รองรับเหตุการณ์ที่คล้ายกับ Plone / Zope
มีการจัดการธุรกรรม (หากสังเกตว่าเราเคยใช้ Zope มาก่อนแล้ว)
การกำหนดค่า
การกำหนดค่าคือการตั้งค่าที่มีผลต่อการทำงานของแอปพลิเคชัน มีสองวิธีในการกำหนดค่าแอปพลิเคชันพีระมิด: การกำหนดค่าที่จำเป็นและการกำหนดค่าแบบประกาศ
รองรับการกำหนดค่าพีระมิด -
การกำหนดค่าที่จำเป็นหรือแม้แต่การลบล้างการกำหนดค่าตามมัณฑนากร
การตรวจจับความขัดแย้งของการกำหนดค่า (รวมถึงการกำหนดในพื้นที่มากขึ้นเทียบกับการกำหนดในพื้นที่น้อยลง)
Configuration Extensibility (รวมจากหลายแอพ)
นโยบายการรับรองความถูกต้องและการอนุญาตที่ยืดหยุ่น
Programmatic Introspection of Configuration (ดูสถานะปัจจุบันของเส้นทางเพื่อสร้างการนำทาง)
การสร้าง URL
ในพีระมิดเราสามารถสร้าง URL สำหรับเส้นทางทรัพยากรและสินทรัพย์คงที่ ง่ายและยืดหยุ่นในการทำงานกับ API การสร้าง URL ด้วยการสร้าง URL ผ่าน API ต่างๆของปิรามิดผู้ใช้สามารถเปลี่ยนการกำหนดค่าได้ตามอำเภอใจโดยไม่ต้องกังวลกับการทำลายลิงก์กับหน้าเว็บของคุณ
ดังนั้นในระยะสั้น URL ในปิรามิด -
รองรับการสร้าง URL เพื่ออนุญาตการเปลี่ยนแปลงแอปที่จะไม่ทำลายลิงก์
สร้าง URL ไปยังทรัพยากรแบบคงที่ที่อาศัยอยู่ภายในหรือภายนอกแอปพลิเคชัน
รองรับ Routes และ Traversal
มุมมอง
งานหลักอย่างหนึ่งของปิรามิดคือการค้นหาและเรียกใช้มุมมองที่เรียกได้เมื่อคำขอมาถึงแอปพลิเคชันของคุณ ดู callables เป็นบิตของโค้ดที่ทำสิ่งที่น่าสนใจเพื่อตอบสนองต่อคำขอในแอปพลิเคชันของคุณ
เมื่อคุณจับคู่มุมมองของคุณกับการส่ง URL หรือรหัสหลามคุณสามารถเรียกได้ทุกประเภท มุมมองอาจเป็นการประกาศฟังก์ชันหรืออินสแตนซ์ก็สามารถใช้เป็นมุมมองในปิรามิด
ประเด็นสำคัญบางประการเกี่ยวกับมุมมองมีให้ด้านล่าง -
มุมมองสร้างขึ้นจากการโทรใด ๆ
มุมมองตามตัวแสดงผลสามารถส่งคืนพจนานุกรมได้ (ไม่จำเป็นต้องส่งคืนอ็อบเจ็กต์สไตล์เว็บบาย)
รองรับการดูหลายครั้งต่อเส้นทาง (GET เทียบกับ POST เทียบกับการตรวจสอบส่วนหัวของ HTTP ฯลฯ )
ดูอะแด็ปเตอร์ตอบกลับ (เมื่อคุณต้องการระบุว่าควรจัดการกับมุมมองที่ส่งคืนค่าอย่างไรกับอ็อบเจ็กต์การตอบกลับ)
ความสามารถในการขยาย
พีระมิดได้รับการออกแบบโดยคำนึงถึงความสามารถในการขยายได้ ดังนั้นหากผู้พัฒนาพีระมิดคำนึงถึงข้อ จำกัด บางประการในขณะที่สร้างแอปพลิเคชันบุคคลที่สามควรสามารถเปลี่ยนแปลงพฤติกรรมของแอปพลิเคชันได้โดยไม่จำเป็นต้องแก้ไขซอร์สโค้ด พฤติกรรมของแอปพลิเคชันพีระมิดที่ปฏิบัติตามข้อ จำกัด บางประการสามารถลบล้างหรือขยายได้โดยไม่ต้องแก้ไขใด ๆ ได้รับการออกแบบมาเพื่อการปรับใช้ที่ยืดหยุ่นในหลายสภาพแวดล้อม (ไม่มี Singletons) Pyramid มีการรองรับมิดเดิลแวร์ "Tweens" (เครื่องกลาง WSGI แต่ทำงานในบริบทของ Pyramid เอง)
ใช้โปรแกรม Hello, Pyramid
โปรแกรมที่ง่ายที่สุดที่เราคิดได้หลังจากติดตั้งเฟรมเวิร์กพีระมิดเพื่อตรวจสอบว่าทุกอย่างทำงานได้ดีหรือไม่คือการเรียกใช้โปรแกรม“ Hello, World” หรือ“ Hello, Pyramid” แบบง่ายๆ
ด้านล่างนี้คือโปรแกรมพีระมิด“ สวัสดีพีระมิด” ของฉันบนหมายเลขพอร์ต 8000 -
ตัวอย่างง่ายๆข้างต้นคือรันง่าย บันทึกเป็น app.py (ในนี้เราตั้งชื่อ pyramid_helloW.py)
การรันโปรแกรมที่ง่ายที่สุด: -
ถัดไปเปิด http://localhost:8000/ในเบราว์เซอร์และคุณจะเห็นสวัสดีปิรามิด! ข้อความดังนี้ -
ต่อไปนี้เป็นคำอธิบายสำหรับโค้ดด้านบน -
หมายเลขบรรทัด 1-3
ที่ส่วนหัวของไฟล์เรามีคำสั่งนำเข้า บรรทัดแรกนำเข้าฟังก์ชัน make_server ซึ่งสามารถสร้างเว็บเซิร์ฟเวอร์อย่างง่ายเมื่อส่งผ่านไปยังแอปพลิเคชัน บรรทัดที่สองและสามนำเข้าการกำหนดค่าและฟังก์ชันตอบกลับจากปิรามิด ฟังก์ชันเหล่านี้ใช้เพื่อกำหนดค่ารายละเอียดและตั้งค่าพารามิเตอร์สำหรับแอปพลิเคชันและตอบสนองต่อคำขอตามลำดับ
หมายเลขบรรทัด 5-6
ตอนนี้เรามีนิยามฟังก์ชันที่เรียกว่า hello_world. ใช้รหัสมุมมองที่สร้างการตอบสนอง ฟังก์ชันที่ตอบสนองความต้องการของมุมมองมีหน้าที่ในการแสดงผลข้อความที่จะส่งกลับไปยังเอนทิตีที่ร้องขอ ในกรณีข้างต้นเมื่อเรียกใช้ฟังก์ชันจะใช้ฟังก์ชันการตอบสนองที่เรานำเข้ามาก่อนหน้านี้ สิ่งนี้ส่งกลับค่าที่ควรมอบให้กับลูกค้า
หมายเลขบรรทัด 8
ถ้า __name__ == '__main__': Python พูดว่า“ เริ่มที่นี่เมื่อเรียกใช้จากบรรทัดคำสั่ง” แทนที่จะเป็นเมื่อนำเข้าโมดูลนี้
หมายเลขบรรทัด 9-11
ในบรรทัดที่ 9 เราสร้างตัวแปรที่เรียกว่า config จากอ็อบเจ็กต์ที่สร้างโดยฟังก์ชัน Configurator ที่เรานำเข้าที่ด้านบนของโปรแกรม บรรทัดที่ 10 และ 11 เรียกเมธอด add_route และ add_view ของอ็อบเจ็กต์นี้ วิธีนี้ใช้เพื่อกำหนดมุมมองที่แอปพลิเคชันสามารถใช้ได้ อย่างที่เราเห็นเราส่งผ่านฟังก์ชัน hello_world ที่เรากำหนดไว้ก่อนหน้านี้ นี่คือจุดที่ฟังก์ชันนั้นรวมอยู่ในมุมมอง
หมายเลขบรรทัด 12-14
ในสิ่งนี้เราสร้างแอปพลิเคชัน WSGI โดยเรียกเมธอด make_wsgi_app ของวัตถุ config สิ่งนี้ใช้แอตทริบิวต์ของวัตถุเช่นมุมมองที่เราเพิ่มเพื่อสร้างแอปพลิเคชัน จากนั้นแอปพลิเคชันนี้จะถูกส่งไปยังฟังก์ชัน make_server ที่เรานำเข้าเพื่อสร้างวัตถุที่สามารถเปิดเว็บเซิร์ฟเวอร์เพื่อให้บริการแอปพลิเคชันของเรา บรรทัดสุดท้ายเปิดเซิร์ฟเวอร์นี้
ของเรา hello world applicationเป็นหนึ่งในแอปพลิเคชั่นพีระมิดที่เรียบง่ายและเป็นไปได้ที่กำหนดค่าไว้ "จำเป็น" มีความจำเป็นเนื่องจาก Python มีให้เราใช้งานได้เต็มที่ในขณะที่เราดำเนินการกำหนดค่า
กล่าวโดยสรุป Pyramid เป็นเว็บเฟรมเวิร์กแบบโอเพนซอร์สที่มีชุมชนขนาดใหญ่และมีการใช้งาน ชุมชนขนาดใหญ่นี้มีส่วนช่วยในการทำให้เว็บเฟรมเวิร์ก python เป็นที่นิยมและมีความเกี่ยวข้อง เฟรมเวิร์กเว็บพีระมิดช่วยลดความซับซ้อนและเร่งการพัฒนาเว็บแอปพลิเคชันโดยจัดเตรียมชุดคุณสมบัติและเครื่องมือที่มีประสิทธิภาพ