Ngoài câu trả lời trước, điều quan trọng là phải nói rằng views.py sẽ trả về một HttpResponse với trạng thái 404 trong tiêu đề http. Điều quan trọng là phải thông báo cho các công cụ tìm kiếm rằng trang hiện tại là 404. Người gửi spam đôi khi tạo nhiều url có thể dẫn đến một số địa điểm, nhưng sau đó phục vụ bạn nội dung khác. Họ thường xuyên thực hiện rất nhiều địa chỉ khác nhau phục vụ bạn gần như cùng một nội dung chính xác. Và bởi vì nó không phải là người dùng thân thiện, hầu hết các dòng hướng dẫn SEO phạt đó. Vì vậy, nếu bạn có nhiều địa chỉ hiển thị cùng một nội dung giả 404, nó có thể không tốt cho các hệ thống thu thập thông tin từ các trang web tìm kiếm. Do đó, bạn muốn đảm bảo rằng trang bạn đang phân phát dưới dạng 404 tùy chỉnh có trạng thái 404. Vì vậy, ở đây nó là một cách tốt để đi:
Into add urls.py ứng dụng của bạn:
# Imports
from django.conf.urls.static import static
from django.conf.urls import handler404
from django.conf.urls import patterns, include, url
from yourapplication import views
##
# Handles the URLS calls
urlpatterns = patterns('',
# url(r'^$', include('app.homepage.urls')),
)
handler404 = views.error404
Into add views.py ứng dụng của bạn:
# Imports
from django.shortcuts import render
from django.http import HttpResponse
from django.template import Context, loader
##
# Handle 404 Errors
# @param request WSGIRequest list with all HTTP Request
def error404(request):
# 1. Load models for this view
#from idgsupply.models import My404Method
# 2. Generate Content for this view
template = loader.get_template('404.htm')
context = Context({
'message': 'All: %s' % request,
})
# 3. Return Template for this view + Data
return HttpResponse(content=template.render(context), content_type='text/html; charset=utf-8', status=404)
Bí quyết là ở cuối cùng line: status = 404
Hy vọng điều đó đã hữu ích!
Tôi rất mong được thấy đầu vào của cộng đồng theo cách tiếp cận này. =)
Nguồn
2013-04-26 13:55:19
Tôi nhận được "không thể nhập chế độ xem tên" khi viết "từ lượt xem nhập app1" trong "views.py". Tên ứng dụng của tôi là "app1" – Timo
urls.py của ứng dụng có nghĩa là: Nếu bạn có dự án 'trang web' và một ứng dụng' blog'. Sau đó, bạn nên thêm 'handler404' vào 'website.urls.py' không phải' blog.urls.py' –