2012-04-04 32 views

Trả lời

14

Trình xử lý ngữ cảnh được sử dụng để cung cấp các mẫu có dữ liệu bổ sung. Middleware là để chặn các đối tượng yêu cầu/phản hồi và sửa đổi chúng (hoặc kích hoạt hành vi khác) theo một cách có ý nghĩa.

1

Chúng hoạt động ở cấp độ ngăn xếp khác nhau cho ngữ cảnh khác nhau. Nó thường khó để giữ ngăn xếp của một khuôn khổ để được hoàn toàn chính thống, đặc biệt là điều duy nhất một khuôn khổ web như chế biến Django là yêu cầu và phản ứng. Có, chúng ta có thể sử dụng request.user, thay vì context.user bởi context_processor khi rendering template. Nhưng bạn có thể không muốn các thuộc tính chỉ được sử dụng trong mẫu, được đặt trên mọi yêu cầu.

Ngoài ra, trình trang trí linh hoạt hơn phần mềm trung gian cho hoạt động ở cấp chế độ xem, nhưng phần mềm trung gian khó nói của nó là trang trí-lite. Tôi muốn xử lý các bộ xử lý ngữ cảnh như các thẻ mẫu gán nhưng được nạp tự động, nhân tiện.

19

Phần mềm trung gian đóng vai trò như một móc nối trong quá trình xử lý yêu cầu/phản hồi của Django ở mức thấp và nhẹ. Các móc có sẵn để yêu cầu, phản hồi, xem, template_response và xử lý ngoại lệ. Móc có thể cần phải sửa đổi yêu cầu trước khi chế độ xem xử lý nó, có thể cần phải ghi lại thông tin về yêu cầu cho mục đích gỡ lỗi, kiểm tra cookie để đặt địa phương, v.v.

Đọc thêm trên Middleware.

Trình xử lý ngữ cảnh chỉ sửa đổi ngữ cảnh. Ngữ cảnh là ánh xạ giá trị khóa với các biến được chuyển đến một mẫu. Một bộ xử lý ngữ cảnh nhận một đối tượng yêu cầu làm đối số của nó và trả về một từ điển các mục được hợp nhất vào ngữ cảnh. Bối cảnh được đưa vào mẫu của bạn theo quan điểm của bạn và nó đính kèm bất cứ thứ gì khác mà bộ xử lý ngữ cảnh của bạn hợp nhất. Bạn có thể coi nó như là một biến ngữ cảnh chung, sẵn sàng cho bạn ở tất cả các mẫu của bạn.

Đọc thêm trên Context Processors.

Cả hai đều khá đơn giản để viết và có mục đích của chúng. Dưới đây là một sơ đồ cho thấy nơi trung gian và bối cảnh phù hợp trong một dòng chảy django tiêu biểu:

enter image description here

Django Flowchart

  1. dùng yêu cầu một trang

  2. Yêu cầu đạt Yêu cầu middlewares, có thể thao tác hoặc trả lời yêu cầu

  3. URLĐăng nhập rela ted Xem bằng cách sử dụng url.py

  4. Xem middlewares được gọi là, có thể thao tác hoặc trả lời các yêu cầu

  5. Chức năng xem được gọi

  6. Quan điểm có thể tùy chọn truy cập dữ liệu thông qua mô hình

  7. Tất cả các mô hình để Tương tác -DB được thực hiện qua người quản lý

  8. Chế độ xem có thể sử dụng ngữ cảnh đặc biệt nếu cần

  9. Ngữ cảnh được chuyển đến Mẫu để hiển thị

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