Cách tiếp cận đúng để sử dụng trình xử lý dựa trên lớp học thay vì các chức năng trong thư viện aiohttp là gì? Tôi đã từng viết các trình xử lý như các lớp trong Django vì vậy tôi tự hỏi làm thế nào để làm điều đó một cách chính xác trong aiohttp?Chế độ xem dựa trên lớp học trong aiohttp
6
A
Trả lời
5
Tôi giả sử bạn muốn sử dụng trình xử lý dựa trên lớp vì lợi ích của việc áp dụng thừa kế để sử dụng lại mã.
Trình xử lý web aiohttp về mặt kỹ thuật là bất kỳ coroutine nào chấp nhận tham số yêu cầu và trả về cá thể phản hồi.
Ví dụ
class BaseView:
def __init__(self, ...):
...
@asyncio.coroutine
def __call__(self, request):
return web.Response()
app.router.add_route('GET', '/', BaseView(...))
có thể được sử dụng như là lớp cơ sở cho việc thực hiện web xử lý hệ thống cấp bậc.
Hoặc thậm chí
class Handler:
def __init__(self, db):
self._db = db
@asyncio.coroutine
def get_from_db(self, data):
...
@asyncio.coroutine
def handle_a(self, request):
data = yield from self.get_from_db(
self.extract_from_request_a(request))
return web.Response(self.format_data(data))
@asyncio.coroutine
def handle_b(self, request):
data = yield from self.get_from_db(
self.extract_from_request_b(request))
return web.Response(self.format_data(data))
handler = Handler(db)
app.router.add_route('GET', '/a', hadndler.handle_a)
app.router.add_route('GET', '/b', hadndler.handle_b)
Các vấn đề liên quan
- 1. select_related() trong chế độ xem chung dựa trên lớp học
- 2. Chế độ xem dựa trên lớp VS Các chế độ xem dựa trên chức năng
- 3. Chế độ xem dựa trên Lớp gọi điện thoại Django từ chế độ xem lớp khác
- 4. Cách sử dụng trình trang trí user_passes_test trong chế độ xem dựa trên lớp học?
- 5. Cách truy cập RequestContext trong chế độ xem chung dựa trên lớp học?
- 6. Django. Hướng dẫn tốt cho Chế độ xem dựa trên lớp học
- 7. Sự cố với chế độ xem chung dựa trên lớp học ở Django
- 8. Chức năng mô phỏng trong chế độ xem dựa trên lớp của Django
- 9. Đặt giá trị ban đầu thành dạng mô hình trong chế độ xem chung dựa trên lớp học
- 10. Django views.py cập nhật phân trang từ lựa chọn danh mục trong chế độ xem dựa trên lớp học
- 11. Cách chỉ định chế độ xem 404 tùy chỉnh cho Django bằng Chế độ xem dựa trên lớp?
- 12. Cách thêm hàng trong NSTableView dựa trên chế độ xem?
- 13. Nền tùy chỉnh trong NSTableView dựa trên chế độ xem
- 14. Sửa đổi chế độ xem dựa trên ACL trong CakePHP
- 15. NSDateFormatter trong chế độ xem dựa trên NSTableView
- 16. Sự khác biệt giữa hai phương pháp trang trí các chế độ xem dựa trên lớp học là gì?
- 17. Loại trừ các trường trong Chế độ xem dựa trên lớp Django Không hoạt động
- 18. xóa chế độ xem phụ UIView dựa trên thẻ?
- 19. Bộ lọc NSTableView dựa trên chế độ xem + hoạt ảnh
- 20. Django: chế độ xem dựa trên lớp với mixins và phương thức công văn
- 21. Gửi đối tượng request.user đến ModelForm từ chế độ xem chung dựa trên lớp ở Django
- 22. Chế độ xem dựa trên lớp Django ListView với biểu mẫu
- 23. Chế độ xem dựa trên lớp có được cộng đồng Django sử dụng rộng rãi không?
- 24. Chế độ xem dựa trên lớp Django - UpdateView với hai mẫu biểu mẫu - một gửi
- 25. Chế độ xem chung dựa trên lớp Django và xác thực
- 26. Url ngược Django với các tham số cho một lớp học dựa trên xem
- 27. Nhận URL Tuyệt đối ở Django khi sử dụng Chế độ xem Lớp học
- 28. Lớp học cho Bộ điều khiển Chế độ xem mới trong Storyboard
- 29. dòng không được vẽ trên chế độ xem lớp phủ
- 30. Tạo lớp Chế độ xem/Chế độ xem tùy chỉnh trong Anko DSL
Vẫn không có ý tưởng làm thế nào để thêm bài function (theo yêu cầu) ví dụ. Tôi có nên thực hiện phương thức as_view() để sử dụng trong các url không. – vwvolodya
Tôi đã thêm ví dụ để đăng ký một cá thể. Mã không tạo lại BaseView cho mọi yêu cầu - Tôi thấy rằng không bắt buộc thường chúng ta sử dụng cách tiếp cận với lớp 'Xử lý' rất tốt. –
Cập nhật: Phiên bản gần đây đã thêm [Chế độ xem dựa trên lớp] (https://aiohttp.readthedocs.org/en/stable/web.html#class-based-views). Lưu ý rằng có những biến chứng với điều này, không phải tất cả 'aio-libs' đều hỗ trợ nó hoàn toàn – nerdwaller