Trước tiên, hãy để tôi giải quyết nhận thức rằng Nevow đã chết. Dự án bệ phóng có chứa mã cho Nevow (và phần còn lại của các dự án Divmod) là divmod.org on launchpad. Một lỗi phần cứng đã ảnh hưởng xấu đến sự hiện diện công khai của dự án, nhưng nó vẫn còn đó, và những thứ khác (như wiki và vé) đang trong quá trình phục hồi. Hiện tại không có nhiều công việc bảo trì đang hoạt động, nhưng chủ yếu là do nó đủ tốt cho hầu hết người dùng; có rất nhiều người phụ thuộc vào Nevow và sẽ rất khó chịu nếu nó ngừng hoạt động. Những người đó có những kỹ năng và kinh nghiệm cần thiết để tiếp tục duy trì nó. Vì vậy, trong khi nó không được quảng bá ngay bây giờ, tôi nghĩ rằng nó không chắc rằng nó sẽ biến mất.
Hy vọng dài hạn của tôi cho Nevow sẽ như sau. (Tôi muốn nói "kế hoạch", nhưng vì tôi đã không tham gia tích cực vào việc bảo trì của nó gần đây, điều này thực sự là đối với những người đang có.) Đầu tiên, tôi muốn trích xuất các cơ sở templating của nó và di chuyển chúng thành xoắn. web. API sạch, không được sử dụng cho Nevow chủ yếu được bao gồm bởi nevow.page.Element và loaders khác nhau.Bản thân Twisted muốn tạo HTML ở một vài nơi và các cơ sở này có thể hữu ích. Sau đó, chúng ta nên ném ra các "appserver" và các phần mô hình tài nguyên của Nevow. Đó là phần lớn chỉ là một bộ sưu tập ngẫu nhiên của các sửa lỗi hoặc thay đổi cho twisted.web, hầu hết trong số đó đã có mặt trong một dạng nào đó trong xoắn.web2 và do đó hoặc sẽ được cuộn lại vào trong twisted.web dù sao, hoặc đã được áp dụng ở đó. Cuối cùng là câu hỏi của Athena. Trong khi giao tiếp hai chiều là một trong những điểm mạnh của Twisted, Athena chính nó là một codebase JavaScript khổng lồ, sắc màu rực rỡ và có lẽ nên vẫn là dự án riêng của mình.
Thứ ba, đối với câu hỏi chính, được cung cấp thông tin này, bạn nên làm gì bây giờ?
Nói chung, tôi muốn nói "sử dụng nevow". Dự án có một số mụn cóc, nó cần thêm tài liệu và API của nó cần phải được cắt để loại bỏ một số công cụ cũ và bị hỏng, nhưng nó vẫn còn khá hữu ích và rất nhiều sống. Để bù đắp cho tài liệu hơi thưa thớt, bạn có thể tham gia các kênh #divmod
hoặc #twisted.web
trên Freenode để được trợ giúp. Nếu bạn giúp đỡ bằng cách đóng góp các bản vá lỗi nơi bạn có thể, bạn sẽ thấy rằng bạn sẽ nhận được rất nhiều sự giúp đỡ nhiệt tình ở đó. Khi bạn bỏ qua các phần không được dùng nữa, Nevow có một API thân thiện nhỏ, sane và xoắn. Hậu quả của kế hoạch cho sự tiến hóa của Nevow mà tôi vạch ra ở trên thực sự là rất nhỏ. Nếu điều đó thậm chí xảy ra, nghĩa là đối với bạn, trong vòng 1-5 năm, khi bạn nâng cấp lên phiên bản mới của Twisted, bạn sẽ nhận được một số cảnh báo không dùng nữa, thay đổi một số dòng import
trong mã của bạn từ from nevow.page import ...; from nevow.loaders import ...
cho một số điều mới giả định như from twisted.web.page.element import ...; from twisted.web.page.templates import ...
hoặc somesuch. Hầu hết các API qua điểm đó nên vẫn giữ nguyên, và chắc chắn các khái niệm cấp cao không nên thay đổi nhiều.
Lợi thế chính mà bạn nhận được từ việc sử dụng Nevow là nó không thân thiện với đồng bộ và có thể hiển thị các trang trong chuỗi chính của bạn mà không chặn mọi thứ. Thêm vào đó, bạn có thể nhận được COMET thật dễ dàng miễn phí với Athena.
Bạn cũng có thể sử dụng Django. Đây không phải là khá thân thiện với async nhưng rõ ràng là nó có cơ sở hỗ trợ rộng hơn. Tuy nhiên, "không phải là async thân thiện" không có nghĩa là "khó sử dụng". Bạn có thể chạy nó trong twisted.web qua WSGIResource, and simply use blockingCallFromThread trong ứng dụng Django của bạn để gọi bất kỳ API Twisted nào trả về giá trị hoãn lại, cần đủ mạnh để thực hiện bất kỳ thứ gì bạn muốn. Nếu bạn có một câu hỏi cụ thể hơn về cách khởi tạo tài nguyên web Twisted để kết hợp Twisted Web và Django, bạn có thể nên hỏi nó trong câu hỏi Stack Overflow của chính nó.
Bạn đã điều tra CherryPy chưa? –
Công cụ [BuildBot] (http://trac.buildbot.net/wiki/ScreenShots) được viết bằng Twisted và có một số kết quả đầu ra trang web tốt, nó có thể là một nơi tốt để học hỏi. – sarnold