Slugifying trong Python là gì?

Trong hướng dẫn này, chúng tôi sẽ thêm sên vào trang web Django. Như đã lưu ý trong các tài liệu chính thức. "Slug là một thuật ngữ báo chí. Slug là một nhãn ngắn cho một cái gì đó, chỉ chứa các chữ cái, số, dấu gạch dưới hoặc dấu gạch nối. Chúng thường được sử dụng trong các URL. "

Để đưa ra một ví dụ cụ thể, giả sử bạn có một trang web Báo chí (chẳng hạn như chúng tôi sẽ xây dựng trong hướng dẫn này). Đối với một câu chuyện có tiêu đề "Xin chào thế giới", URL sẽ là

(.venv) > python manage.py startapp articles
5 giả sử trang web được gọi là
(.venv) > python manage.py startapp articles
6

Bất chấp sự phổ biến của chúng, sên có thể hơi khó thực hiện lần đầu tiên, ít nhất là theo kinh nghiệm của tôi. Do đó, chúng tôi sẽ triển khai mọi thứ từ đầu để bạn có thể thấy các phần khớp với nhau như thế nào. Nếu bạn đã sẵn sàng triển khai ListView và DetailView, bạn có thể chuyển ngay đến phần Slug

Thiết lập

Để bắt đầu, hãy điều hướng vào một thư mục cho mã của chúng tôi. Điều này có thể được lưu trữ ở bất cứ đâu trên máy tính của bạn nhưng một vị trí dễ tìm là

(.venv) > python manage.py startapp articles
7 trong một thư mục có tên là
(.venv) > python manage.py startapp articles
8

# Windows
> cd onedrive\desktop\code
> mkdir newspaper
> cd newspaper

# macOS
% cd ~/desktop/code
% mkdir newspaper
% cd newspaper

Để tỏ lòng tôn kính với nguồn gốc của Django tại một tờ báo, chúng tôi sẽ tạo một trang web Báo cơ bản với các Bài viết. Nếu bạn cần trợ giúp cài đặt Python, Django và tất cả phần còn lại (xem tại đây để biết hướng dẫn chuyên sâu)

Trên dòng lệnh của bạn, hãy tạo và kích hoạt một môi trường ảo, cài đặt Django, tạo một dự án mới có tên là

(.venv) > python manage.py startapp articles
9, thiết lập cơ sở dữ liệu ban đầu qua
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
0, sau đó khởi động máy chủ web cục bộ bằng
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
1

________số 8

Đừng quên bao gồm khoảng thời gian đó

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
2 ở cuối lệnh
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
3. Đây là một bước tùy chọn để tránh Django tạo một thư mục bổ sung nếu không

Điều hướng đến http. //127. 0. 0. 1. 8000/ trong trình duyệt web của bạn để xem trang chào mừng Django xác nhận mọi thứ được định cấu hình đúng

Slugifying trong Python là gì?

ứng dụng bài viết

Vì trọng tâm của hướng dẫn này là về sên nên tôi sẽ chỉ đưa ra các lệnh và mã để kết nối ứng dụng Bài viết này. Giải thích đầy đủ có thể được tìm thấy trong cuốn sách của tôi Django cho người mới bắt đầu

Hãy bắt đầu bằng cách tạo một ứng dụng có tên là

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
4. Dừng máy chủ cục bộ bằng
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
5 và sử dụng lệnh
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
6 để tạo ứng dụng mới này

(.venv) > python manage.py startapp articles

Sau đó, cập nhật

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
7 trong tệp
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
8 của chúng tôi để thông báo cho Django về ứng dụng

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]

Mẫu bài viết

Tạo mô hình cơ sở dữ liệu sẽ có

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
9 và
(.venv) > python manage.py startapp articles
90. Chúng tôi cũng sẽ đặt
(.venv) > python manage.py startapp articles
91 và một
(.venv) > python manage.py startapp articles
92 là các phương pháp hay nhất của Django

(.venv) > python manage.py startapp articles
9

Bây giờ hãy tạo tệp di chuyển cho thay đổi này, sau đó thêm tệp đó vào cơ sở dữ liệu của chúng tôi qua

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
0

(.venv) > python manage.py startapp articles
4

Quản trị viên Django

Quản trị viên Django là một cách thuận tiện để khám phá các mô hình, vì vậy chúng tôi sẽ sử dụng nó. Nhưng trước tiên, hãy tạo một tài khoản siêu người dùng

(.venv) > python manage.py startapp articles
5

Và sau đó cập nhật

(.venv) > python manage.py startapp articles
94 để hiển thị ứng dụng của chúng tôi trong quản trị viên

(.venv) > python manage.py startapp articles
7

Khởi động lại máy chủ với

(.venv) > python manage.py startapp articles
95 và điều hướng đến quản trị viên tại http. //127. 0. 0. 1. 8000/quản trị viên. Đăng nhập bằng tài khoản siêu người dùng của bạn

Slugifying trong Python là gì?

Nhấp vào "+ Thêm" bên cạnh phần

(.venv) > python manage.py startapp articles
96 và thêm một mục nhập

Slugifying trong Python là gì?

URL

Ngoài một mô hình, cuối cùng chúng ta sẽ cần một URL, chế độ xem và mẫu để hiển thị trang Bài viết. Tôi muốn chuyển đến các URL tiếp theo sau các mô hình mặc dù thứ tự không thành vấn đề. chúng tôi cần cả bốn trước khi chúng tôi có thể hiển thị một trang. Bước đầu tiên là thêm ứng dụng

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
4 vào tệp
(.venv) > python manage.py startapp articles
98 cấp dự án của chúng tôi

(.venv) > python manage.py startapp articles
2

Tiếp theo, trong trình soạn thảo văn bản của bạn, hãy tạo tệp

(.venv) > python manage.py startapp articles
99 cấp ứng dụng. Chúng ta sẽ có một ListView để liệt kê tất cả các bài viết và một DetailView cho từng bài viết

Lưu ý rằng chúng tôi đang tham khảo hai chế độ xem chưa được tạo.

(.venv) > python manage.py startapp articles
40 và
(.venv) > python manage.py startapp articles
41. Chúng tôi sẽ thêm chúng trong phần tiếp theo

(.venv) > python manage.py startapp articles
6

Lượt xem

Đối với mỗi chế độ xem, chúng tôi chỉ định mô hình liên quan và mẫu chưa được tạo phù hợp

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
0

mẫu

Cuối cùng, chúng ta đến bước cuối cùng. mẫu. Theo mặc định, Django sẽ tìm trong mỗi ứng dụng một thư mục

(.venv) > python manage.py startapp articles
42. Cấu trúc đó trong trường hợp của chúng ta sẽ là
(.venv) > python manage.py startapp articles
43

Nhập

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
5 trên dòng lệnh và tạo thư mục
(.venv) > python manage.py startapp articles
42 mới

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
1

Sau đó, trong trình soạn thảo văn bản của bạn, hãy thêm hai mẫu mới.

(.venv) > python manage.py startapp articles
46 và
(.venv) > python manage.py startapp articles
47

Đối với trang danh sách của chúng tôi, chúng tôi lặp qua ________ 248 được cung cấp bởi ________ 249. Và chúng tôi thêm một

(.venv) > python manage.py startapp articles
50 bằng cách sử dụng phương pháp
(.venv) > python manage.py startapp articles
92 được thêm vào mô hình

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
2

Chế độ xem chi tiết xuất ra hai trường của chúng tôi--

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
9 và
(.venv) > python manage.py startapp articles
90--sử dụng giá trị mặc định
(.venv) > python manage.py startapp articles
54 do DetailView cung cấp. Bạn có thể và có lẽ nên đổi tên cả
(.venv) > python manage.py startapp articles
48 trong ListView và
(.venv) > python manage.py startapp articles
54 trong DetailView để mang tính mô tả hơn

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
3

Đảm bảo máy chủ đang chạy--

(.venv) > python manage.py startapp articles
95--và kiểm tra cả hai trang của chúng tôi trong trình duyệt web của bạn

Danh sách tất cả các bài viết có sẵn tại

(.venv) > python manage.py startapp articles
58

Slugifying trong Python là gì?

Và chế độ xem chi tiết cho bài viết duy nhất của chúng tôi là tại

(.venv) > python manage.py startapp articles
59

Slugifying trong Python là gì?

sên

Cuối cùng chúng ta đến với sên. Cuối cùng, chúng tôi muốn tiêu đề bài viết của mình được phản ánh trong URL. Nói cách khác, "A Day in the Life" nên có URL là

(.venv) > python manage.py startapp articles
70

Chỉ có hai bước cần thiết. cập nhật tệp

(.venv) > python manage.py startapp articles
71 và
(.venv) > python manage.py startapp articles
99 của chúng tôi. Sẳn sàng?

Trong mô hình của chúng tôi, chúng tôi có thể thêm SlugField tích hợp của Django. Nhưng chúng ta cũng phải--và đây là phần thường khiến mọi người phải cập nhật--cập nhật cả

(.venv) > python manage.py startapp articles
92 nữa. Đó là nơi chúng tôi chuyển vào giá trị được sử dụng trong URL của chúng tôi. Hiện tại nó được chuyển vào
(.venv) > python manage.py startapp articles
74 cho bài báo là
(.venv) > python manage.py startapp articles
75, vì vậy
(.venv) > python manage.py startapp articles
76 cho bài viết đầu tiên của chúng tôi. Chúng tôi cần thay đổi điều đó thành một đối số từ khóa,
(.venv) > python manage.py startapp articles
77, cho
(.venv) > python manage.py startapp articles
78 của chúng tôi

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
4

Tiếp tục, hãy thêm tệp di chuyển vì chúng tôi đã cập nhật mô hình của mình

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
5

xác nhận. Cái này là cái gì?. Hóa ra chúng tôi đã có dữ liệu trong cơ sở dữ liệu của mình, Bài báo duy nhất của chúng tôi, vì vậy chúng tôi không thể tùy tiện thêm một trường mới vào. Django đang nói với chúng tôi một cách hữu ích rằng chúng tôi cần đặt giá trị mặc định một lần là

(.venv) > python manage.py startapp articles
79 hoặc tự thêm nó vào. Hừm

Vì lý do này, lời khuyên chung là luôn thêm các trường mới với giá trị

(.venv) > python manage.py startapp articles
20 hoặc giá trị
(.venv) > python manage.py startapp articles
21

Bây giờ chúng ta hãy tiếp cận dễ dàng với việc thiết lập

(.venv) > python manage.py startapp articles
20. Vì vậy, gõ
(.venv) > python manage.py startapp articles
23 trên dòng lệnh. Sau đó, thêm phần này vào trường
(.venv) > python manage.py startapp articles
78 của chúng tôi

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
6

Hãy thử tạo lại tệp di chuyển và nó sẽ hoạt động

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
7

Hãy tiếp tục và

# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
0 cơ sở dữ liệu để áp dụng thay đổi

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
8

Nhưng nếu bạn nghĩ về nó, những gì chúng tôi đã làm là tạo ra một giá trị

(.venv) > python manage.py startapp articles
79 cho
(.venv) > python manage.py startapp articles
78 của chúng tôi. Chúng tôi phải vào quản trị để thiết lập nó đúng cách. Khởi động máy chủ cục bộ,
(.venv) > python manage.py startapp articles
95 và truy cập trang Bài viết trong phần Quản trị. Trường
(.venv) > python manage.py startapp articles
29 trống

Slugifying trong Python là gì?

Thêm thủ công vào giá trị mong muốn của chúng tôi

(.venv) > python manage.py startapp articles
60 và nhấp vào "Lưu. "

Slugifying trong Python là gì?

Ok, bước cuối cùng là cập nhật

(.venv) > python manage.py startapp articles
99 để chúng tôi hiển thị đối số từ khóa
(.venv) > python manage.py startapp articles
78 trong chính URL. May mắn thay, điều đó chỉ có nghĩa là hoán đổi
(.venv) > python manage.py startapp articles
63 lấy
(.venv) > python manage.py startapp articles
63

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
9

Và chúng tôi đã hoàn thành. Chuyển đến trang xem danh sách tại

(.venv) > python manage.py startapp articles
58 và nhấp vào liên kết cho bài viết của chúng tôi

Slugifying trong Python là gì?

Và nó ở đó với con sên của chúng tôi là URL. Xinh đẹp

Duy nhất và Null

Trong tương lai, chúng ta có thực sự muốn cho phép giá trị

(.venv) > python manage.py startapp articles
79 cho một con sên không? . Một xem xét khác là. điều gì xảy ra nếu có những con sên giống hệt nhau? . không tốt

Do đó, hãy thay đổi trường

(.venv) > python manage.py startapp articles
78 của chúng ta để không cho phép sử dụng
(.venv) > python manage.py startapp articles
79 và bắt buộc phải có các giá trị duy nhất

(.venv) > python manage.py startapp articles
0

Thực hiện di chuyển/di chuyển. Cần trống cho mục trước đây

(.venv) > python manage.py startapp articles
1

Chọn

(.venv) > python manage.py startapp articles
23 vì chúng tôi có thể tự xử lý hàng hiện có và trên thực tế, đã có. Sau đó,
# django_project/settings.py
INSTALLED_APPS = [
    ...
    "articles",  # new
]
0 cơ sở dữ liệu

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
8

Các trường được điền trước

Việc thêm trường

(.venv) > python manage.py startapp articles
78 theo cách thủ công mỗi lần nhanh chóng trở nên tẻ nhạt. Vì vậy, chúng tôi có thể sử dụng prepopulated_field trong quản trị viên để tự động hóa quy trình cho chúng tôi

Cập nhật

(.venv) > python manage.py startapp articles
94 như sau

(.venv) > python manage.py startapp articles
3

Bây giờ hãy đến quản trị viên và thêm một bài viết mới. Bạn sẽ lưu ý rằng khi bạn nhập vào trường

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
03, trường
(.venv) > python manage.py startapp articles
29 sẽ tự động được điền. khá gọn gàng

Tín hiệu, Móc vòng đời, Lưu và Biểu mẫu/Bộ nối tiếp

Trong thế giới thực, không thể đơn giản cung cấp quyền truy cập quản trị viên cho người dùng. Bạn có thể, nhưng ở quy mô lớn, đó chắc chắn không phải là một ý tưởng hay. Và ngay cả ở quy mô nhỏ, hầu hết người dùng không có kỹ thuật sẽ thấy giao diện web hấp dẫn hơn

Vì thế. cách tự động điền trường

(.venv) > python manage.py startapp articles
78 khi tạo Bài viết mới. Hóa ra Django có một công cụ tích hợp cho việc này gọi là slugify

Nhưng làm thế nào để sử dụng

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
06? . Nhưng tôi sẽ tranh luận - cũng như Django Fellow Carlton Gibson - rằng đây không phải là cách sử dụng tốt các tín hiệu vì chúng tôi biết cả người gửi và người nhận ở đây. không có gì bí ẩn. Chúng tôi thảo luận về việc sử dụng hợp lý các tín hiệu trong tập Podcast Trò chuyện Django của chúng tôi về chủ đề này

Một giải pháp thay thế cho các tín hiệu là sử dụng hook vòng đời thông qua thứ gì đó giống như gói django-lifecycle. Móc vòng đời là một giải pháp thay thế cho Tín hiệu cung cấp chức năng tương tự với ít định hướng hơn

Một cách phổ biến khác để thấy điều này được triển khai là ghi đè phương thức lưu của mô hình

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
07. Điều này cũng "hoạt động" nhưng không phải là giải pháp tốt nhất. Đây là một cách để làm điều đó

(.venv) > python manage.py startapp articles
4

Theo tôi, giải pháp tốt nhất là tự tạo slug ở dạng. Điều này có thể được thực hiện bằng cách ghi đè phương thức sạch của biểu mẫu để

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
08 có sên hoặc JavaScript có thể được sử dụng để tự động điền vào trường như được thực hiện trong chính quản trị viên Django. Nếu bạn đang sử dụng API, cách tiếp cận tương tự có thể được áp dụng cho bộ tuần tự hóa

Giải pháp này không dựa vào tín hiệu tùy chỉnh và xử lý sên trước khi chạm vào cơ sở dữ liệu. Theo lời của Carlton Gibson, người đã gợi ý cho tôi cách tiếp cận này, đôi bên cùng có lợi

Lời cảnh báo

Một lời cảnh báo nhanh về việc sử dụng sên trong một trang web lớn. Mặc dù yêu cầu một Bài báo phải là

# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
09, gần như không thể tránh khỏi việc đặt tên xung đột bằng cách sử dụng sên. Tuy nhiên, sên dường như có đặc tính SEO tốt. Một thỏa hiệp tốt là kết hợp một con sên với UUID hoặc tên người dùng. Do đó, URL cuối cùng sẽ là
# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
10 hoặc
# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
11. Ví dụ: nếu bạn xem Github, họ sử dụng mẫu tên người dùng + sên cho mỗi repo, đó là lý do tại sao mã nguồn Django cho Người mới bắt đầu của tôi được đặt tại
# Windows 
> python -m venv .venv
> .venv\Scripts\Activate.ps1
(.venv) > python -m pip install django~=4.0.0
(.venv) > django-admin startproject django_project .
(.venv) > python manage.py migrate
(.venv) > python manage.py runserver

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) % python3 -m pip install django~=4.0.0
(.venv) % django-admin startproject django_project .
(.venv) % python3 manage.py migrate
(.venv) % python3 manage.py runserver
12. Mặc dù bạn cũng có thể sử dụng
(.venv) > python manage.py startapp articles
74 + slug, nhưng việc sử dụng id thường gây lo ngại về bảo mật và nên tránh đối với các trang web sản xuất