Django 404 (không tìm thấy trang)
Không tìm thấy trang
Nếu bạn cố truy cập một trang không tồn tại (lỗi 404), Django sẽ hướng bạn đến chế độ xem tích hợp xử lý lỗi 404.
Bạn sẽ học cách tùy chỉnh chế độ xem 404 này ở phần sau của chương này, nhưng trước tiên, hãy thử yêu cầu một trang không tồn tại.
Trong cửa sổ trình duyệt, nhập 127.0.0.1:8000/masfdfg/
vào thanh địa chỉ.
Bạn sẽ nhận được một trong hai kết quả:
1:
2:
Nếu bạn nhận được kết quả đầu tiên, bạn sẽ được chuyển hướng đến mẫu Django 404 tích hợp sẵn.
Nếu bạn nhận được kết quả thứ hai thì DEBUG
được đặt thành True
trong cài đặt của bạn và bạn phải đặt thành False
để được chuyển hướng tới mẫu 404.
Việc này được thực hiện trong tệp settings.py
, nằm trong thư mục dự án, trong trường hợp của chúng tôi là thư mục my_tennis_club
, nơi bạn cũng phải chỉ định tên máy chủ nơi dự án của bạn chạy từ đó:
Ví dụ
Đặt thuộc tính debug thành False
và cho phép dự án chạy từ máy chủ cục bộ của bạn:
my_tennis_club/my_tennis_club/settings.py
:
.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['*']
.
.
Quan trọng: Khi DEBUG = False, Django yêu cầu bạn chỉ định máy chủ mà bạn sẽ cho phép dự án Django này chạy từ đó.
Trong sản xuất, điều này nên được thay thế bằng một tên miền thích hợp:
ALLOWED_HOSTS = [' yourdomain.com ']
Trong cửa sổ trình duyệt, nhập 127.0.0.1:8000/masfdfg/
vào thanh địa chỉ và bạn sẽ nhận được mẫu 404 tích hợp sẵn:
Tùy chỉnh mẫu 404
Django sẽ tìm file có tên 404.html
trong thư mục templates
và hiển thị nó khi có lỗi 404.
Nếu không có tệp nào như vậy tồn tại, Django hiển thị thông báo "Không tìm thấy" mà bạn đã thấy trong ví dụ trên.
Để tùy chỉnh thông báo này, tất cả những gì bạn phải làm là tạo một tệp trong thư mục templates
và đặt tên là 404.html
và điền vào đó bất cứ thứ gì bạn muốn:
my_tennis_club/members/templates/404.html
:
<!DOCTYPE html>
<html>
<title>Wrong address</title>
<body>
<h1>Ooops!</h1>
<h2>I cannot
find the file you requested!</h2>
</body>
</html>
Trong cửa sổ trình duyệt, nhập 127.0.0.1:8000/masfdfg/
vào thanh địa chỉ và bạn sẽ nhận được mẫu 404 tùy chỉnh: