Khung kim tự tháp

Pyramid là một khung phát triển ứng dụng web chung, mã nguồn mở, được xây dựng bằng python. Nó cho phép nhà phát triển python tạo các ứng dụng web một cách dễ dàng.

Pyramid được hỗ trợ bởi Hệ thống quản lý tri thức doanh nghiệp KARL (một dự án của George Soros).

Cài đặt, khởi động và cấu hình

Như được mô tả, "khởi đầu nhỏ, kết thúc lớn, duy trì khung hoàn thiện", Pyramid giống như Flask, chỉ tốn rất ít công sức để cài đặt và chạy. Trên thực tế, bạn sẽ nhận ra rằng một số mẫu tương tự như Flask khi bạn bắt đầu xây dựng ứng dụng này.

Sau đây là các bước để tạo môi trường khung kim tự tháp -

  • Đầu tiên, tạo một thư mục dự án. Ở đây, chúng tôi đã tạo một thư mục có tênpyramidProject (bạn có thể chọn bất kỳ tên nào bạn muốn).

  • Tiếp theo, tạo một môi trường ảo nơi bạn sẽ cài đặt tất cả các phụ thuộc cụ thể của dự án. Ở đây, chúng tôi đã tạo một thư mục môi trường ảo có tênpyramidEnv nơi Kim tự tháp được lắp đặt.

  • Sau đó, chuyển đến thư mục, pyramidEnv và cài đặt kim tự tháp với pip install pyramid.

Khi mọi thứ được thực hiện như đã đề cập ở trên, cấu trúc thư mục của bạn sẽ như hình dưới đây:

Và phiên bản kim tự tháp được cài đặt trong hệ thống được đưa ra dưới đây:

Khái niệm cốt lõi

Khung Kim tự tháp dựa trên các khái niệm cốt lõi dưới đây:

  • Zope (khả năng mở rộng, truyền tải, bảo mật khai báo) - Pyramid dựa trên Zope một cách lỏng lẻo về khả năng mở rộng, khái niệm truyền tải và bảo mật khai báo.

  • Pylons(Công văn URL, quan điểm không có quan điểm về sự bền bỉ, khuôn mẫu, v.v.) - Một lĩnh vực khác mà kim tự tháp rút ra khái niệm là dự án cột tháp. Các giá treo có khái niệm về các tuyến đường, gọi là điều phối URL bên trong khung kim tự tháp và chúng cũng có quan điểm không kiên định về lớp bền vững hoặc tạo khuôn mẫu.

  • Django(Xem, mức độ tài liệu) - Pyramid cũng nhận được gợi ý từ Django. Cách chúng tôi xem xét, định tuyến URL của mình và cấp độ tài liệu là cách rất Django.

Sau đây là các tính năng của khung Kim tự tháp -

  • Nó là khuôn khổ web Python nhanh nhất được biết đến.

  • Nó hỗ trợ các dự án nhỏ và lớn (tại sao phải viết lại khi bạn phát triển hơn khuôn khổ nhỏ của mình).

  • Nó hỗ trợ các ứng dụng web tệp đơn như microframeworks.

  • Nó có các phiên cài sẵn.

  • Nó hỗ trợ các sự kiện tương tự như Plone / Zope.

  • Nó cung cấp Quản lý giao dịch (nếu đã nhận thấy rằng chúng tôi đã sử dụng Zope trước đây).

Cấu hình

Cấu hình là cài đặt ảnh hưởng đến hoạt động của ứng dụng. Có hai cách để cấu hình một ứng dụng kim tự tháp: cấu hình mệnh lệnh và cấu hình khai báo.

Cấu hình kim tự tháp hỗ trợ -

  • Cấu hình bắt buộc hoặc thậm chí ghi đè các cấu hình dựa trên trình trang trí

  • Phát hiện xung đột cấu hình (bao gồm xác định cục bộ nhiều hơn so với ít cục bộ hơn)

  • Khả năng mở rộng cấu hình (bao gồm từ nhiều ứng dụng)

  • Chính sách xác thực và ủy quyền linh hoạt

  • Nội quan theo chương trình của cấu hình (xem trạng thái hiện tại của các tuyến đường để tạo điều hướng)

Tạo URL

Trong kim tự tháp, chúng tôi có thể tạo URL cho các tuyến đường, tài nguyên và nội dung tĩnh. Thật dễ dàng và linh hoạt để làm việc với các API tạo URL. Bằng cách tạo URL thông qua các API khác nhau của kim tự tháp, người dùng có thể thay đổi cấu hình tùy ý mà không phải lo lắng về việc phá vỡ liên kết với bất kỳ trang web nào của bạn.

Tóm lại, URL trong kim tự tháp -

  • hỗ trợ tạo URL để cho phép các thay đổi đối với ứng dụng không phá vỡ liên kết.

  • tạo URL tới các tài nguyên tĩnh nằm trong hoặc ngoài ứng dụng.

  • hỗ trợ Định tuyến và Truyền tải.

Lượt xem

Một trong những công việc chính của kim tự tháp là tìm và gọi một chế độ xem có thể gọi khi một yêu cầu đến ứng dụng của bạn. Chế độ xem có thể gọi là các đoạn mã thực hiện điều gì đó thú vị để đáp lại một yêu cầu được thực hiện trong ứng dụng của bạn.

Khi bạn ánh xạ chế độ xem của mình vào điều phối URL hoặc mã python, có thể có bất kỳ loại lệnh gọi nào. Các khung nhìn có thể là một khai báo hàm hoặc một thể hiện, nó có thể được sử dụng như một khung nhìn trong kim tự tháp.

Một số điểm quan trọng về Chế độ xem được đưa ra dưới đây:

  • Lượt xem được tạo từ bất kỳ lượt gọi nào.

  • Chế độ xem dựa trên trình kết xuất có thể trả về từ điển một cách đơn giản (không bắt buộc phải trả về đối tượng kiểu webby).

  • Hỗ trợ nhiều chế độ xem trên mỗi tuyến (kiểm tra GET so với POST so với HTTP Header, v.v.).

  • Xem các bộ điều hợp phản hồi (khi bạn muốn chỉ định cách xem các giá trị trả về nên được xử lý như thế nào so với các đối tượng phản hồi).

Khả năng mở rộng

Kim tự tháp được thiết kế với tâm trí có thể mở rộng. Vì vậy, nếu một nhà phát triển kim tự tháp đang ghi nhớ những ràng buộc nhất định trong khi xây dựng ứng dụng, thì bên thứ ba sẽ có thể thay đổi hành vi của ứng dụng mà không cần phải sửa đổi mã nguồn của nó. Hành vi của một ứng dụng kim tự tháp tuân theo các ràng buộc nhất định có thể bị ghi đè hoặc mở rộng mà không cần bất kỳ sửa đổi nào. Nó được thiết kế để triển khai linh hoạt cho nhiều môi trường (Không có Singletons). Pyramid có hỗ trợ phần mềm trung gian “Tweens” (phần mềm trung gian WSGI, nhưng chạy trong ngữ cảnh của chính Kim tự tháp).

Chạy chương trình xin chào, kim tự tháp

Chương trình đơn giản nhất mà chúng ta có thể nghĩ đến sau khi cài đặt khung kim tự tháp để kiểm tra xem mọi thứ có hoạt động tốt hay không, là chạy một chương trình đơn giản “Hello, World” hoặc “Hello, Pyramid”.

Dưới đây là chương trình kim tự tháp "Xin chào, Kim tự tháp" của tôi trên số cổng 8000 -

Ví dụ đơn giản trên rất dễ chạy. Lưu cái này dưới dạng app.py (Trong cái này, chúng tôi đã đặt tên là kim tự tháp_helloW.py).

Chạy chương trình đơn giản nhất: -

Tiếp theo, mở http://localhost:8000/trong một trình duyệt, và bạn sẽ thấy Xin chào, Kim tự tháp! Thông báo như sau -

Sau đây là giải thích cho đoạn mã trên:

Dòng số. 1-3

Ở phần đầu của tệp, chúng tôi có các câu lệnh nhập. Dòng đầu tiên nhập hàm make_server, có thể tạo một máy chủ web đơn giản khi nó được chuyển cho một ứng dụng. Dòng thứ hai và thứ ba nhập cấu hình và chức năng Phản hồi từ kim tự tháp. Các chức năng này được sử dụng để cấu hình chi tiết và thiết lập các thông số cho ứng dụng và phản hồi các yêu cầu tương ứng.

Dòng số. 5-6

Bây giờ chúng ta có một định nghĩa hàm được gọi là hello_world. Triển khai mã chế độ xem tạo phản hồi. Một chức năng đáp ứng yêu cầu của một khung nhìn có trách nhiệm hiển thị văn bản sẽ được chuyển trở lại thực thể yêu cầu. Trong trường hợp trên, hàm, khi được gọi, sử dụng hàm Phản hồi mà chúng ta đã nhập trước đó. Điều này trả lại một giá trị sẽ được cấp cho máy khách.

Dòng số. số 8

if __name__ == '__main__': Python đang nói, "Bắt đầu ở đây khi chạy từ dòng lệnh", thay vì khi mô-đun này được nhập.

Dòng số. 9-11

Trong dòng không. 9, chúng tôi tạo một biến được gọi là config từ đối tượng được tạo bởi hàm cấu hình mà chúng tôi đã nhập ở đầu chương trình. Dòng 10 và 11 gọi phương thức add_route và add_view của đối tượng này. Phương thức này được sử dụng để xác định một dạng xem có thể được sử dụng bởi ứng dụng. Như chúng ta thấy, chúng ta chuyển hàm hello_world mà chúng ta đã xác định trước đó. Đây là nơi chức năng đó thực sự được kết hợp như một khung nhìn.

Dòng số. 12-14

Trong phần này, chúng ta thực sự tạo ứng dụng WSGI bằng cách gọi phương thức make_wsgi_app của đối tượng config. Điều này sử dụng các thuộc tính của đối tượng, chẳng hạn như chế độ xem chúng tôi đã thêm, để tạo ứng dụng. Ứng dụng này sau đó được chuyển đến hàm make_server mà chúng tôi đã nhập để tạo một đối tượng có thể khởi chạy máy chủ web để phục vụ ứng dụng của chúng tôi. Dòng cuối cùng khởi chạy máy chủ này.

Của chúng tôi hello world applicationlà một trong những ứng dụng kim tự tháp đơn giản nhất và dễ dàng nhất có thể, được định cấu hình “theo thứ bậc”. Điều này là bắt buộc vì toàn bộ sức mạnh của Python có sẵn cho chúng ta khi chúng ta thực hiện các tác vụ cấu hình.

Tóm lại, Pyramid là một web framework mã nguồn mở với một cộng đồng lớn và năng động. Cộng đồng lớn này đóng góp vào việc làm cho khuôn khổ web python trở nên phổ biến và phù hợp. Khung web Pyramid đơn giản hóa và tăng tốc phát triển ứng dụng web bằng cách cung cấp một tập hợp các tính năng và công cụ mạnh mẽ.