Cách tốt nhất để sử dụng Django - API REST

Hình ảnh Thomas từ Bapt

Trước sự xuất hiện của Ứng dụng một trang, các ứng dụng sẽ hiển thị một tài liệu HTML đầy đủ bằng CSS trên máy chủ bằng PHP, Java hoặc ngôn ngữ khác và sử dụng các yêu cầu JavaScript / JQuery và AJAX để cung cấp một bộ tương tác cụ thể mà người dùng có thể có với trang web . Điều này hoạt động rất tốt với hệ thống tạo khuôn mẫu Django và các tệp tĩnh vì Django đã làm tất cả công việc cho bạn, tải các tệp cần thiết cho một URL cụ thể.

Nhưng sau đó đến Ứng dụng Trang đơn.

Thay vì tải lại từng trang do một hành động, chẳng hạn như bấm vào nút và khiến người dùng chờ lâu hơn một chút - Ứng dụng một trang cho phép tải lại nhanh tốc độ giữa các trang với các yêu cầu HTTP không đồng bộ, cung cấp trải nghiệm người dùng liền mạch, nhưng phải hy sinh thời gian tải ban đầu. Nhiều người đang hoặc đang trong quá trình chuyển sang sử dụng các khung Javascript cho ngăn xếp phía trước của họ và khá nhiều phần tách ra từ phía trước từ phía sau. Điều này về cơ bản làm cho các mẫu Django vô dụng.

Theo tôi, cách tốt nhất để sử dụng Django cho các ứng dụng web là sử dụng nó để xây dựng API REST và sử dụng các khung công tác mặt trước - React.js, Angular.js, Ember.js, Vue.js - để hiển thị trang web của bạn , có thể hoàn toàn độc lập với Django.

API REST

Về cơ bản, API là giao diện mà máy chủ / phụ trợ cung cấp để các ứng dụng có thể nói chuyện với chúng. API REST là một API tuân theo một bộ quy tắc gọi là REST (Chuyển trạng thái đại diện) và điểm cuối API là các chức năng nhất định của giao diện.

Hãy lấy ví dụ về Instagram, người đã xuất bản API của họ ra công chúng. Vì vậy, giả sử bạn muốn biết thông tin về người dùng 1234567, tên của anh ấy / cô ấy, họ có bao nhiêu người theo dõi, tiểu sử của họ, v.v. Đưa ra một TRUY CẬP mà bạn nhận được từ Instagram, bạn đưa ra yêu cầu đến điểm cuối:

https://api.instagram.com/v1/users/12345678/?access_token=ACCESS-TOKEN

Sau đó, các máy chủ web Instagram sẽ thực hiện một số chức năng nhất định bao gồm tìm kiếm thông qua cơ sở dữ liệu của họ để có được người dùng đó và sau đó sẽ trả lại văn bản này ở định dạng JSON:

{
 "dữ liệu": {
     Câm id
     Tên người dùng của người hâm mộ
     Full đầy đủ tên miền:
     Hồ sơ cá nhân_picture
     Đây là sinh học của tôi
     Trang web của người Nhật Bản: Phần mềm http://snoopdogg.com ",
     Số đếm trên mạng
         Phương tiện truyền thông của Nhật Bản: 1320,
         Theo sau là: 420,
         Theo sau_by
     }
  }
}

Nếu bạn muốn biết thêm thông tin như người theo dõi họ, thì bạn phải đưa ra yêu cầu khác tới một URL khác để có danh sách những người theo dõi họ. Ngoài ra còn có cách để thêm người dùng, thêm ảnh, v.v. nếu bạn cung cấp một số dữ liệu, nhưng tùy thuộc vào việc họ có muốn cho phép công chúng làm như vậy hay không. Đây là cách các ứng dụng của bên thứ 3 được tạo để theo dõi những người đã bỏ theo dõi bạn. Trên thực tế, các ứng dụng di động của Instagram, gọi một loạt các chức năng API này và hiển thị dữ liệu này một cách rất đẹp và nhanh chóng

Khung Django REST

Một cách tuyệt vời và phổ biến để triển khai API với Django là sử dụng Django REST Framework, gói Django được đóng gói với các công cụ mạnh mẽ nhưng linh hoạt để xây dựng API REST. Nó cho phép bạn tuần tự hóa dữ liệu của mình (dịch các đối tượng mô hình của bạn sang - trong trường hợp này là văn bản), nhanh chóng viết các khung nhìn / điểm cuối và kiểm tra chúng, thêm xác thực và hơn thế nữa.

Với điều này, bạn sẽ có thể tách back-end của bạn khỏi front-end của bạn, cho phép bạn mở rộng với các định dạng khác như ứng dụng IOS và Android mà không chỉ dính vào các ứng dụng web. Ngoài ra, win-end và back-end won của bạn được tích hợp một cách rất chặt chẽ và phức tạp, khiến cho việc gỡ lỗi trở thành một địa ngục trần gian. Ngay cả các công ty như Instagram và Doordash đã sử dụng Django để triển khai API của họ làm dịch vụ hỗ trợ, với Instagram sử dụng React.js để phát triển ứng dụng web của họ.

Theo tôi, đây là cách tốt nhất để sử dụng Django.

Nhiêu tai nguyên hơn

  • REST là gì?
  • Django REST Framework chính thức
  • Hướng dẫn khung Django REST

Nếu bạn thích đọc nó, xin vui lòng để lại một cái vỗ tay / bình luận! Tôi rất mới về điều này và tôi muốn cải thiện hơn - mọi phản hồi đều được chào đón :)

Ngoài ra kiểm tra bài viết khác của tôi!