Dường như với tôi rằng mọi thứ mà bộ xử lý ngữ cảnh có thể làm, phần mềm trung gian có thể làm. Vậy điểm xử lý ngữ cảnh là gì? Họ chỉ là middleware-lite?Trình xử lý ngữ cảnh và phần mềm trung gian trong django
Trả lời
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.
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.
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:
Django Flowchart
dùng yêu cầu một trang
Yêu cầu đạt Yêu cầu middlewares, có thể thao tác hoặc trả lời yêu cầu
URLĐăng nhập rela ted Xem bằng cách sử dụng url.py
Xem middlewares được gọi là, có thể thao tác hoặc trả lời các yêu cầu
Chức năng xem được gọi
Quan điểm có thể tùy chọn truy cập dữ liệu thông qua mô hình
Tất cả các mô hình để Tương tác -DB được thực hiện qua người quản lý
Chế độ xem có thể sử dụng ngữ cảnh đặc biệt nếu cần
Ngữ cảnh được chuyển đến Mẫu để hiển thị
- 1. Phần mềm trung gian Django và thay đổi HttpRequest
- 2. Phần mềm trung gian của Symfony2
- 3. Django, bộ xử lý ngữ cảnh mẫu
- 4. Bộ xử lý ngữ cảnh django
- 5. Sự khác nhau giữa phần mềm trung gian của Scrapy và phần mềm trung gian tải xuống là gì?
- 6. Đo thời gian thực hiện xem trong phần mềm trung gian Django - ý tưởng hay?
- 7. Trình xử lý ngữ cảnh mẫu ở đâu trong Django 1.5?
- 8. Phạm vi chức năng phần mềm trung gian trong express.js
- 9. Biến "env" trong phần mềm trung gian Rack là gì?
- 10. Node.js - Vấn đề với res.redirect trong phần mềm trung gian
- 11. Django - Nền tảng thanh toán người dùng/Phần mềm trung gian, tức là Chi phí theo dõi và khoản phí
- 12. Xử lý thích hợp GetLastError (và các ngôn ngữ khác) trong ngữ cảnh đa luồng
- 13. Bộ xử lý ngữ cảnh Django: Có thể truy cập ngữ cảnh hiện tại trong ContextProcessor không?
- 14. OpenGL VAO's - Xử lý VAO trong nhiều ngữ cảnh
- 15. Phần mềm trung gian khi được tham chiếu trong bối cảnh của Ruby on Rails là gì?
- 16. An toàn để sửa đổi cài đặt.SITE_ID từ phần mềm trung gian ở Django?
- 17. phần mềm kết nối trung gian cho coffeescript?
- 18. Phần mềm trung gian hướng tin nhắn là gì?
- 19. Trình bodyParser() trong phần mềm trung gian kết nối làm gì?
- 20. Có dnode có phần mềm trung gian xác thực không?
- 21. Tạo phần mềm trung gian expressjs chấp nhận tham số
- 22. Trình quản lý ngữ cảnh cho MySQLdb
- 23. tạo bộ xử lý ngữ cảnh của riêng tôi trong django
- 24. Thừa kế mẫu django và ngữ cảnh
- 25. Đặt một biến trong phần mềm trung gian để truy cập trong mẫu
- 26. django_cms Không đúng cấu hình: Lỗi khi nhập phần mềm trung gian cms.middleware.media
- 27. "Tải trọng" dữ liệu từ bộ xử lý ngữ cảnh
- 28. Cách xử lý các yêu cầu về chức năng vô lý trong phần mềm của bạn?
- 29. Không đúng cấu hình: Mô-đun phần mềm trung gian "django.middleware.csrf" không xác định lớp "CsrfResponseMiddleware"
- 30. Không thể xác định phần mềm trung gian tải xuống tùy chỉnh trong Scrapy