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. " Show Để đư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 articles5 giả sử trang web được gọi là (.venv) > python manage.py startapp articles6 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 articles7 trong một thư mục có tên là (.venv) > python manage.py startapp articles8 # 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 articles9, 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 ứng dụng bài viếtVì 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ếtTạ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 articles90. Chúng tôi cũng sẽ đặt (.venv) > python manage.py startapp articles91 và một (.venv) > python manage.py startapp articles92 là các phương pháp hay nhất của Django (.venv) > python manage.py startapp articles9 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 articles4 Quản trị viên DjangoQuả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 articles5 Và sau đó cập nhật (.venv) > python manage.py startapp articles94 để hiển thị ứng dụng của chúng tôi trong quản trị viên (.venv) > python manage.py startapp articles7 Khởi động lại máy chủ với (.venv) > python manage.py startapp articles95 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 Nhấp vào "+ Thêm" bên cạnh phần (.venv) > python manage.py startapp articles96 và thêm một mục nhập URLNgoà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 articles98 cấp dự án của chúng tôi (.venv) > python manage.py startapp articles2 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 articles99 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 articles40 và (.venv) > python manage.py startapp articles41. Chúng tôi sẽ thêm chúng trong phần tiếp theo (.venv) > python manage.py startapp articles6 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 runserver0 mẫuCuố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 articles42. Cấu trúc đó trong trường hợp của chúng ta sẽ là (.venv) > python manage.py startapp articles43 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 articles42 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 runserver1 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 articles46 và (.venv) > python manage.py startapp articles47 Đố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 articles50 bằng cách sử dụng phương pháp (.venv) > python manage.py startapp articles92 đượ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 runserver2 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 articles90--sử dụng giá trị mặc định (.venv) > python manage.py startapp articles54 do DetailView cung cấp. Bạn có thể và có lẽ nên đổi tên cả (.venv) > python manage.py startapp articles48 trong ListView và (.venv) > python manage.py startapp articles54 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 runserver3 Đảm bảo máy chủ đang chạy-- (.venv) > python manage.py startapp articles95--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 articles58 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 articles59 sênCuố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 articles70 Chỉ có hai bước cần thiết. cập nhật tệp (.venv) > python manage.py startapp articles71 và (.venv) > python manage.py startapp articles99 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 articles92 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 articles74 cho bài báo là (.venv) > python manage.py startapp articles75, vì vậy (.venv) > python manage.py startapp articles76 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 articles77, cho (.venv) > python manage.py startapp articles78 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 runserver4 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 runserver5 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 articles79 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 articles20 hoặc giá trị (.venv) > python manage.py startapp articles21 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 articles20. Vì vậy, gõ (.venv) > python manage.py startapp articles23 trên dòng lệnh. Sau đó, thêm phần này vào trường (.venv) > python manage.py startapp articles78 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 runserver6 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 runserver7 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 runserver8 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 articles79 cho (.venv) > python manage.py startapp articles78 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 articles95 và truy cập trang Bài viết trong phần Quản trị. Trường (.venv) > python manage.py startapp articles29 trống Thêm thủ công vào giá trị mong muốn của chúng tôi (.venv) > python manage.py startapp articles60 và nhấp vào "Lưu. " Ok, bước cuối cùng là cập nhật (.venv) > python manage.py startapp articles99 để chúng tôi hiển thị đối số từ khóa (.venv) > python manage.py startapp articles78 trong chính URL. May mắn thay, điều đó chỉ có nghĩa là hoán đổi (.venv) > python manage.py startapp articles63 lấy (.venv) > python manage.py startapp articles63 # 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 runserver9 Và chúng tôi đã hoàn thành. Chuyển đến trang xem danh sách tại (.venv) > python manage.py startapp articles58 và nhấp vào liên kết cho bài viết của chúng tôi Và nó ở đó với con sên của chúng tôi là URL. Xinh đẹp Duy nhất và NullTrong tương lai, chúng ta có thực sự muốn cho phép giá trị (.venv) > python manage.py startapp articles79 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 articles78 của chúng ta để không cho phép sử dụng (.venv) > python manage.py startapp articles79 và bắt buộc phải có các giá trị duy nhất (.venv) > python manage.py startapp articles0 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 articles1 Chọn (.venv) > python manage.py startapp articles23 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 runserver8 Các trường được điền trướcViệc thêm trường (.venv) > python manage.py startapp articles78 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 articles94 như sau (.venv) > python manage.py startapp articles3 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 runserver03, trường (.venv) > python manage.py startapp articles29 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ếpTrong 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 articles78 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 runserver06? . 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 runserver07. Đ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 articles4 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 runserver08 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áoMộ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 runserver09, 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 runserver10 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 runserver11. 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 runserver12. Mặc dù bạn cũng có thể sử dụng (.venv) > python manage.py startapp articles74 + 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 |