2009-08-18 37 views
8

Vì vậy, những gì chính xác là Django thực hiện?Bối rối bởi tuyên bố của Django cho MVC, chính xác là gì?

Có vẻ như có

Models 
Views 
Templates 

Models = Cơ sở dữ liệu ánh xạ

xem = Grab dữ liệu có liên quan từ các mô hình và định dạng nó qua mẫu

Templates = Hiển thị HTML tùy thuộc vào dữ liệu được cung cấp bởi Lượt xem

EDIT: S. Lott đã xóa rất nhiều điều này trong bản chỉnh sửa cho bài đăng trước, nhưng tôi vẫn muốn nghe phản hồi khác. Cảm ơn!

Điều này có đúng không? Nó thực sự có vẻ như Django là hư không gần giống như MVC và chỉ gây nhầm lẫn mọi người bằng cách gọi nó là.

+0

không "trước bài" nghĩa là gì trên stack overflow? Mọi thứ được sắp xếp theo phiếu bầu, không phải thời gian. bạn có thể cung cấp một liên kết? Hoặc có lẽ một cái gì đó phổ quát hơn "trước"? –

+0

Bạn có thể vui lòng trỏ đến "bài đăng trước đó" không? Tôi rất muốn kiểm tra nó. –

Trả lời

15

Nhà phát triển của Django có chế độ xem hơi phi truyền thống trên mô hình MVC. Họ thực sự giải quyết câu hỏi này trong Câu hỏi thường gặp của họ, bạn có thể đọc here. Nói cách riêng của họ:

Trong diễn giải của chúng tôi về MVC, "chế độ xem" mô tả dữ liệu được hiển thị cho người dùng. Nó không nhất thiết là dữ liệu trông như thế nào, nhưng dữ liệu nào được trình bày. Chế độ xem mô tả dữ liệu bạn xem, không phải cách bạn xem dữ liệu. Đó là một sự phân biệt tinh tế.

Vì vậy, trong trường hợp của chúng tôi, một “cái nhìn” là hàm callback Python cho một URL cụ thể, bởi vì đó hàm callback mô tả mà dữ liệu được trình bày.

Hơn nữa, có thể tách nội dung khỏi bản trình bày - đó là nơi các mẫu xuất hiện. Trong Django, "chế độ xem" mô tả dữ liệu được trình bày, nhưng chế độ xem thường đại diện cho một mẫu, mô tả cách dữ liệu được trình bày .

"Bộ điều khiển" phù hợp ở đâu? Trong trường hợp của Django, đó có thể là khung chính: máy móc gửi yêu cầu đến chế độ xem thích hợp, theo cấu hình URL Django.

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