Im thực sự làm việc trong dự án django và tôi không chắc chắn về định dạng tốt nhất của URL để truy cập vào một trang đối tượng cụ thể.Django - Thiết kế URL và thực tiễn tốt nhất để xác định một đối tượng
Tôi đã suy nghĩ về những lựa chọn thay thế:
1) Using the autoincremental ID => .com/object/15
Đây là cách đơn giản nhất và nổi tiếng của làm điều đó. "id_object" là ID tự động được tạo bởi công cụ cơ sở dữ liệu trong khi lưu đối tượng. Vấn đề tôi tìm thấy theo cách này là các URL có thể lặp lại đơn giản. Vì vậy, chúng tôi có thể tạo một tập lệnh đơn giản và truy cập tất cả các trang bằng cách tăng ID trong URL. Có thể là một vấn đề an ninh.
2) Using a <hash_id> => .com/object/c30204225d8311e185c3002219f52617
"hash_id" phải là một số giá trị chuỗi chữ và số, được tạo ví dụ với hàm uuid. Đó là một ý tưởng hay vì nó không thể lặp lại được. Nhưng tạo ID đơn "ngẫu nhiên" có thể gây ra một số vấn đề.
3) Using a Slug => .com/object/some-slug-generated-with-the-object
Django có trường "slug" cho mô hình và có thể dùng để xác định đối tượng trong URL. Vấn đề tôi tìm thấy trong trường hợp này là slug có thể thay đổi trong thời gian, tạo ra các URL bị hỏng. Nếu một số công cụ tìm kiếm như Google đã lập chỉ mục URL bị hỏng này, người dùng có thể được hướng dẫn đến các trang "không tìm thấy" và thứ hạng trang của chúng tôi có thể giảm. Freezing the Slug có thể là một giải pháp. Ý tôi là, chỉ lưu con sên vào hành động "Thêm" chứ không phải trong bản "Cập nhật". Nhưng slug bây giờ có thể đại diện cho một cái gì đó cũ hoặc không chính xác.
Tất cả các tùy chọn đều có ưu điểm và nhược điểm. Có thể sử dụng một số kết hợp của họ có thể một số vấn đề. Bạn nghĩ sao về điều đó?
Xem url của câu hỏi này và bạn sẽ có câu trả lời :-) –