it-swarm-vi.tech

Thế nào là nhẹ tốt Python Khung MVC?

Tôi biết có rất nhiều Python khung ngoài đó. Các bạn có thể chỉ cho tôi đi đúng hướng không? Mối quan tâm chính của tôi là sự đơn giản, tôi không cần nhiều tính năng ngoại lai. Dưới đây là một vài điều khác mà tôi muốn (hoặc không muốn):

  • đừng quan tâm đến ORM, chỉ muốn nó hoạt động với MySQL
  • có các tuyến đường cấu hình
  • có hỗ trợ cho bố cục
71
jon

web2py là 265Kbyte mã nguồn và 1,2 MB đã bao gồm tất cả (so với 4,6 MB của Django). Tuy nhiên, web2py sẽ làm mọi thứ bạn cần (quản lý phiên, cookie, yêu cầu, phản hồi, bộ đệm, quốc tế hóa, lỗi/vé, trừu tượng hóa cơ sở dữ liệu cho GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird, v.v.) Nó không cần cài đặt - chỉ cần giải nén và nhấp vào nó - và bạn có thể phát triển trong trình duyệt của mình.

Web2py có cả tuyến và tuyến ngược.

Web2py có một hệ thống mẫu phân cấp, có nghĩa là một khung nhìn có thể mở rộng một bố cục có thể mở rộng một bố cục khác, v.v. các khung nhìn cũng có thể bao gồm các khung nhìn khác.

44
massimo

Vì bạn rõ ràng không muốn ORM, tôi sẽ tránh xa khuôn khổ "ngăn xếp đầy đủ" nếu tôi là bạn. Tiêu chuẩn WSGI của Python cung cấp cho bạn rất nhiều tùy chọn dễ sử dụng sẽ cung cấp cho bạn các tính năng bạn cần và thậm chí cho phép bạn chọn phong cách làm việc.

Dưới đây là một ví dụ: đối với việc gửi URL, bạn có thể sử dụng Routes , cổng nào chuyển qua kiểu gửi URL của Rails. Hoặc bạn có thể kết hợp Selector với WebOb nếu phong cách đó phù hợp với bạn hơn.

Đối với "bố cục", bạn có thể sử dụng mạnh mẽ Jinja2 nếu bạn muốn các mẫu không thể chạy mã. Hoặc, Mako nếu bạn muốn có thể trộn một ít mã vào các mẫu của mình. Bạn thậm chí có thể sử dụng Deliveryance để kiểm soát bố cục của các trang được tạo từ nhiều ứng dụng và thậm chí nhiều ngôn ngữ!

Một khung web đầy đủ ngăn xếp là tốt ở chỗ nó tạo ra một loạt các lựa chọn cho bạn, cho phép bạn chú ý chỉ vào ứng dụng mà tòa nhà của bạn. Nhưng, những lựa chọn tôi đã liệt kê ở trên là một bộ sưu tập tốt để giúp bạn tự xây dựng. Nếu bạn đi xuống con đường đó, bạn sẽ dễ dàng cắm vào Beaker để lưu vào bộ nhớ cache và phiên nếu bạn cần chúng, hoặc WebError để giúp bạn gỡ lỗi.

Cá nhân, tôi là một fan hâm mộ lớn của ORM (đặc biệt là SQLAlchemy ), nhưng nếu bạn muốn dùng ORM miễn phí và tổng thể nhẹ, bạn không thể đánh bại việc kết hợp các thành phần WSGI tuyệt vời có sẵn trong Python.

31
Kevin Dangoor

Hãy cho web.py thử. Nó rất đơn giản và có thể cung cấp sự tối giản mà bạn đang tìm kiếm.

11
Dimitry Z

Giá treo.

Nó tốt hơn nhiều so với Django và không đi kèm với ORM nhảm nhí.

9
habnabit

Mọi người đã đưa ra nhiều câu trả lời liên quan đến các khung ứng dụng web, nhưng MVC (hoặc bất kỳ mô hình nào khác) không chỉ gắn với web. Đó chỉ là cho rõ ràng.

Nếu bạn nói về MVC đơn giản, Pylons tuân thủ mô hình theo cách chặt chẽ hơn. Django diễn giải MVC và họ gọi nó là model-template-view, nhưng ý tưởng phân tách vai trò là như nhau. Lựa chọn thực tế là vấn đề sở thích cá nhân, mặc dù không ai trong hai người này tôi xem xét lightweigth (Pylons có vẻ như nhẹ hơn, nhưng thực tế thì không, và gần đây = Django thu thập thêm một số trọng lượng - rất có thể bạn sẽ không phù hợp với ngay cả ứng dụng nhỏ như blog cá nhân trong bộ nhớ lưu trữ 20 MB).

Tất nhiên, không có gì ngăn cản bạn viết khuôn khổ của riêng bạn, vd. với WebOb . Bạn có thể đặt nó dưới dạng light như bạn muốn (và học nhiều thứ đang cố gắng).

8
zgoda

kiểm tra https://github.com/salimane/bottle-mvc hoặc https://github.com/salimane/flask-mvc . Chúng là các mẫu nồi có thể giúp bạn bắt đầu với các bộ điều khiển, mô hình trong các thư mục riêng biệt. Chúng dựa trên chai và flask khung vi mô, không có tính năng vô dụng, chúng cho phép bạn linh hoạt để cắm bất kỳ mô-đun nào bạn muốn.

6

Nếu bạn muốn một cái gì đó đơn giản, mà không cần phải làm cho riêng mình khung , trong khi vẫn chưa bao gồm tất cả (Django), bạn có thể muốn thử CherryPy . Nó có thể sử dụng hầu hết mọi bộ điều phối (Hệ thống định tuyến URL/Trình xử lý trang). Bạn cũng sẽ phải chọn công cụ tạo khuôn mẫu của riêng mình, Genshi là sở thích của tôi.

6
alif

Khi nói đến các ứng dụng máy tính để bàn Dabo là một lựa chọn tốt. Đây là một khung nền tảng chéo trên đầu trang của wxPython hỗ trợ MySql, Postgresql, Firebird và Sqlite.

6
uwe

Bạn muốn web2py. Kiểm tra nó:

  • đừng quan tâm đến ORM, chỉ muốn nó hoạt động với MySQL

Web2py không có ORM, nhưng nó có trình bao bọc cú pháp qua SQL giúp cho việc thực hiện SQL dễ dàng hơn nhiều.

  • có các tuyến đường cấu hình
  • có hỗ trợ cho bố cục

... web2py có cả hai thứ này.

Và web2py nhẹ hơn Django/Rails/bất cứ thứ gì trên khá nhiều. Rất dễ học. Những điều khó nhất khi học một khung công tác MVC là các tập lệnh, ORM và (với Django) ngôn ngữ mẫu. Nhưng web2py đã loại bỏ các tập lệnh, đơn giản hóa ORM và ngôn ngữ mẫu chỉ là python một cách thông minh.

5
toomim

Django!

Google App Engine sử dụng nó.

Tôi cũng sử dụng nó cho các dự án thú cưng của riêng tôi.

4
Graviton

Có, tôi sẽ nói Django chắc chắn là hướng đi. Thiết kế mô-đun của nó đảm bảo rằng bạn có thể trộn và khớp các thành phần (ORM, công cụ tạo khuôn mẫu, gửi URL, ...) Thay vì bị kẹt với một thành phần mà khung cung cấp cho bạn, bạn có thể thay thế nó bằng bất kỳ bên thứ 3 nào tương đương.

4
Gabriel Ross

web2py! Django gọi bộ điều khiển một khung nhìn, 'nuf nói.

3
why

Nếu bạn muốn đơn giản, hãy sử dụng web2py hoặc giá treo. Django là tốt ... nhưng đường cong học tập dốc

3
BasicGuy

Django. Bạn không để sử dụng các tính năng bổ sung và được thiết kế tốt để bạn có thể kết hợp các thư viện của bên thứ 3 khi cần.

2
John Millikin

Tôi sẽ xem Pylons ; nó nhẹ và nhanh.

2
tholo

Tôi cũng đang ở trên thuyền Django. Dưới đây là một vài lý do:

  • Bạn có thể sẽ tiết kiệm thời gian với giao diện quản trị của Django để tránh các truy vấn thủ công.
  • Hệ thống tạo khuôn mẫu của Django thật tuyệt vời
  • Django có cộng đồng WONDERFUL , rất háo hức được giúp đỡ (xem #Django trên freenode )
2
Ross

Tôi thực sự mới về Python nhưng tôi đã thử một vài lần, đặc biệt Django và web2py. Tôi yêu sự đơn giản của web2py, tôi đã có thể tạo Trang web có độ phức tạp trung bình trong một vài ngày. Nó có một bộ tính năng không cần thiết là DAL, tạo mã, bộ đệm HTML và đối với tôi, tính năng quan trọng nhất là tài liệu trong trang web khá đầy đủ.

2
user10917

Django là đề xuất của tôi.

Bạn có thể tìm thấy một giới thiệu về nó ở đây (Google Tech Talk của Jacob Kaplan-Moss):

Và bạn cũng có thể muốn xem bài nói của Adrian Holovaty được đưa ra tại Rắn và Rubies , Đại học DePaul:

0
Nolan Evans