2010-03-10 30 views
5

Tôi đang lên kế hoạch viết dịch vụ web bằng python. Nhưng, tôi thấy wsgi cũng làm điều tương tự. Cái nào có thể được ưa thích?Apache2: mod_wsgi hoặc mod_python, cái nào tốt hơn?

Cảm ơn bạn
Bala

Cập nhật

tôi vẫn còn lúng túng. Hãy giúp tôi.

Tốt hơn theo nghĩa của tôi là:
1. Lỗi sẽ được sửa định kỳ.
2. Được chọn bởi hầu hết các nhà phát triển.
3. Các tính năng bổ sung như mã thông báo xác thực như AWS, có thể được hỗ trợ ngoài hộp.
4. Không phụ thuộc mạnh vào phiên bản. (Tôi thấy rằng wsgi yêu cầu python 2.6)
5. Tất cả thư viện python sẽ hoạt động ra khỏi hộp.
6. Khả năng mở rộng trong tương lai.
7. Nâng cấp trong tương lai không gây ra bất kỳ sự cố nào.

Với kinh nghiệm hạn chế của tôi, tôi muốn các tính năng này. Có thể có một số tôi có thể bị mất tích.

Cảm ơn
Bala

Cập nhật

Tôi xin lỗi cho tất cả những rắc rối gây ra. Tôi chỉ muốn trưng bày một dịch vụ web an toàn bằng ngôn ngữ python. Có một khuôn khổ tốt?

+0

phụ thuộc vào những gì bạn muốn làm, WSGI ở mức rất thấp, bạn sẽ cần phải chọn một khung công tác để chạy trên WSGI, cần thêm thông tin –

+0

Thực ra tôi chỉ muốn viết API dịch vụ web REST. Hiện tại, tôi không quan tâm đến tốc độ, nhưng trong tương lai tôi có thể lo ngại. – Boolean

+0

1) Vui lòng xác định "tốt hơn" và "ưa thích". Bạn cần cung cấp các tiêu chí; những gì bạn đang tìm kiếm. Tốt hơn là không thể xác định nếu bạn không nói điều gì quan trọng đối với bạn. (2) Không thêm nhận xét cho câu hỏi mà bạn sở hữu. Cập nhật câu hỏi với thông tin của bạn về REST. Giữ cho câu hỏi rõ ràng, đầy đủ và chính xác. Không thêm nhận xét. –

Trả lời

14

mod_wsgi được duy trì tích cực hơn và (tôi nghe - chưa chuẩn bị bản thân mình!) Hoạt động tốt hơn so với mod_python. Vì vậy, trừ khi bạn cần các tính năng độc quyền của mod_python, chỉ để sử dụng khung ứng dụng web (hoặc không có khung công tác, chẳng hạn như werkzeug ;-), bạn có thể nên sử dụng tốt hơn với mod_wsgi! (Chỉ cần về mọi khung công tác web Python, và nhiều khung công tác không phải là khung công tác mà tôi yêu thích, hỗ trợ WSGI làm giao diện chuẩn của chúng cho máy chủ web, những ngày này).

+5

Lưu ý khi Alex nói "mod_wsgi được duy trì tích cực hơn", ý của anh là "bản phát hành cuối cùng của mod_python là vào năm 2007". :) Chắc chắn sử dụng mod_wsgi nếu bạn có thể. –

4

Nếu bạn chỉ muốn chạy các ứng dụng web thì hãy sử dụng mod_wsgi. Nếu bạn cần viết trình xử lý cho phần còn lại của các giai đoạn yêu cầu/phản hồi của httpd, hãy sử dụng mod_python.

+0

Sự khác nhau là gì giữa hai người. Tôi chỉ muốn trưng ra API dịch vụ web REST. – Boolean

+0

@Algorist Trừ khi bạn biết bạn có yêu cầu đặc biệt yêu cầu mod_python, bạn không _need_ mod_python. 99% thời gian không có lý do để sử dụng nó trên một dự án mới trừ khi bạn phải chạy trên một nền tảng phụ thuộc mod_python hiện có. –

+4

mod_wsgi là để chạy các ứng dụng web. mod_python là để mở rộng httpd. –

5

Đừng nhầm lẫn giữa WSGI và mod_wsgi. WSGI là một đặc tả giao diện để lưu trữ các ứng dụng web Python trên một máy chủ. Mô đun mod_wsgi là một cài đặt đặc tả của WSGI sử dụng Apache làm máy chủ web cơ bản. Do đó, Python và WSGI không phải là lựa chọn chính xác, WSGI chỉ là một cách để có thể giao tiếp giữa một dịch vụ/ứng dụng web Python và máy chủ web. Gói mod_wsgi là một triển khai thực hiện của giao diện đó. Vì vậy, WSGI là một phương tiện để kết thúc, không phải là một giải pháp trong chính nó.

Cá nhân, tôi rất khuyên bạn chỉ nên sử dụng một khung Python tối thiểu/khung không và như Alex gợi ý, Werkzeug là một lựa chọn tốt.

3

mod_wsgi được điều chỉnh riêng để chạy các ứng dụng web Python sử dụng WSGI trong Apache. mod_python dành cho bất kỳ loại ứng dụng web Python nào, bao gồm cả các ứng dụng WSGI. mod_wsgi cũng có dấu chân bộ nhớ thấp hơn mod_python.

0
  1. Lỗi sẽ được sửa định kỳ.

    Trừ khi bạn đang trả tiền, bạn không thể có bất kỳ ý tưởng nào về điều này.

  2. Được chọn bởi hầu hết các nhà phát triển.

    mod_wsgi

  3. tính năng bổ sung như thẻ xác thực như AWS, có thể được hỗ trợ ra khỏi hộp.

    Đúng cho mọi khung công tác.

  4. Không phụ thuộc mạnh mẽ vào phiên bản. (Tôi thấy rằng wsgi đòi hỏi python 2,6)

    gì? Mọi thứ đều phụ thuộc vào các phiên bản tương thích. Mọi điều. Mỗi phần mềm duy nhất.

  5. Tất cả thư viện python sẽ hoạt động ra khỏi hộp.

    "Tất cả?" Điều gì về những người kém viết?

  6. Có thể mở rộng trong tương lai.

    Chắc chắn. Chúng tôi luôn hy vọng điều này. Không có bảo đảm.

  7. Nâng cấp trong tương lai không gây ra bất kỳ sự cố nào.

    Điều đó thật buồn cười.

"Tôi muốn các tính năng này".

Tất cả chúng ta đều làm. Thực tế, bạn có thể nhận đượC# 2. Phần còn lại không có ý nghĩa hoặc không thể được đảm bảo.

1

mod_wsgi được duy trì tích cực hơn nhiều so với mod_python tại thời điểm này. Nó cũng có một chút động lực, vì nó gần đây đã được chấp nhận là phương pháp triển khai ưu tiên trên apache2 bởi Django. Tác giả cũng tích cực tham gia với cộng đồng Python liên quan đến sự phát triển trong tương lai của WSGI.

Các vấn đề liên quan