กรอบพีระมิด

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 เป็นที่นิยมและมีความเกี่ยวข้อง เฟรมเวิร์กเว็บพีระมิดช่วยลดความซับซ้อนและเร่งการพัฒนาเว็บแอปพลิเคชันโดยจัดเตรียมชุดคุณสมบัติและเครื่องมือที่มีประสิทธิภาพ