"Sên" là cách tạo URL hợp lệ, thường sử dụng dữ liệu đã thu được. Chẳng hạn, một con sên sử dụng tiêu đề của một bài viết để tạo URL. Tôi khuyên bạn nên tạo sên bằng một hàm, được đặt tiêu đề (hoặc một phần dữ liệu khác), thay vì đặt thủ công.
Một ví dụ:
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
Bây giờ hãy giả vờ rằng chúng ta có một mô hình Django như:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
Làm thế nào bạn có thể tham chiếu đối tượng này với một URL và với một tên có ý nghĩa? Chẳng hạn, bạn có thể sử dụng Article.id để URL trông như thế này:
www.example.com/article/23
Hoặc, bạn có thể muốn tham khảo tiêu đề như thế này:
www.example.com/article/The 46 Year Old Virgin
Vì các khoảng trắng không hợp lệ trong các URL, chúng phải được thay thế bằng %20
, dẫn đến:
www.example.com/article/The%2046%20Year%20Old%20Virgin
Cả hai lần thử đều không dẫn đến URL rất dễ đọc, có ý nghĩa. Điều này tốt hơn:
www.example.com/article/the-46-year-old-virgin
Trong ví dụ này, the-46-year-old-virgin
là một con sên: nó được tạo ra từ tiêu đề bằng cách đặt xuống tất cả các chữ cái và thay thế khoảng trắng bằng dấu gạch nối -
.
Cũng xem URL của trang web này cho một ví dụ khác.