Trong thời đại số hóa hiện nay, việc phát triển các ứng dụng web mạnh mẽ và an toàn là điều cần thiết. Django, một trong những framework phổ biến nhất cho Python, cung cấp các công cụ mạnh mẽ để xây dựng ứng dụng web. Trong bài viết này, chúng ta sẽ khám phá cách xây dựng một Django REST API với tính năng tải tệp và xác thực người dùng. Bạn sẽ học cách tạo một hệ thống cho phép người dùng đăng ký, đăng nhập, và tải lên các tệp an toàn, từ đó mở rộng khả năng tương tác của ứng dụng của bạn. Hãy cùng bắt đầu hành trình này để biến ý tưởng của bạn thành hiện thực!
Trong hướng dẫn này, bạn sẽ học cách tạo một Django REST API hỗ trợ xác thực người dùng và tải tệp. API này sẽ cho phép người dùng đăng ký, đăng nhập và tải tệp lên một cách an toàn.
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt các phần mềm sau trên hệ thống của mình:
Bắt đầu bằng cách cài đặt Django và Django REST Framework bằng pip. Mở terminal và chạy lệnh sau:
myproject/settings.py
Trong myapp/serializers.py
, tạo một serializer cho mô hình Người dùng để xử lý dữ liệu người dùng:
myapp/views.py
Trong myapp/urls.py
, định nghĩa các URL cho các view đăng ký và đăng nhập:
myproject/urls.py
Trong myapp/serializers.py
, thêm một serializer để xử lý việc tải tệp:
myapp/views.py
Cập nhật myapp/urls.py
để bao gồm endpoint tải tệp:
myproject/settings.py
Cập nhật myproject/urls.py
để phục vụ các tệp media trong quá trình phát triển:
from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Trước khi chạy máy chủ, hãy áp dụng các lệnh di trú:
python manage.py migrate
Bây giờ khởi động máy chủ:
python manage.py runserver
Bạn có thể sử dụng các công cụ như Postman hoặc cURL để kiểm tra các endpoint API của mình.
Gửi một yêu cầu POST để đăng ký một người dùng:
POST /api/register/ { "username": "testuser", "email": "[email protected]", "password": "password123" }
Gửi một yêu cầu POST để đăng nhập:
POST /api/login/ { "username": "testuser", "password": "password123" }
Sau khi đăng nhập, bạn có thể tải tệp lên:
POST /api/upload/ Authorization: Token <your_token> Content-Type: multipart/form-data { "file": <your_file> }
Chúc mừng! Bạn đã xây dựng thành công một Django REST API có tính năng xác thực người dùng và tải tệp. Bạn có thể mở rộng API này bằng cách thêm nhiều tính năng khác như xác thực JWT, giải pháp lưu trữ tệp, hoặc các endpoint bổ sung để nâng cao khả năng của nó.