我正在创建一个 django 应用程序。用户登录并显示由 flatpages 应用程序管理的静态网页。
以下是来自开发服务器的典型状态消息:
[15/Aug/2013 18:43:16] "GET / HTTP/1.1" 200 1263
[15/Aug/2013 18:43:23] "POST / HTTP/1.1" 302 0
[15/Aug/2013 18:43:23] "GET /home HTTP/1.1" 301 0
[15/Aug/2013 18:43:23] "GET /home/ HTTP/1.1" 200 4529
- 第一行是 / 处的登录页面。这服务成功,代码 200。
- 第二行是表单输入。服务器响应码为 302,表示页面暂时移动。
- 第三行是尝试检索一个不存在的页面('/home'),因为底层页面是由平面页面提供的。301 服务器响应代码表示该页面已被永久移动。
- 第四行是从平面页面成功交付内容('/home')。
为什么服务器会以 302 响应 put 请求?
是什么导致了第三行?为什么会发出这条消息?这不应该是 flatpages 中间件捕获的东西吗?我的 Web 客户端是否在第四行下发送请求?它怎么知道这样做?
我想最重要的问题是:我做错了什么吗?
谢谢您的帮助!
网址.py
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'django.contrib.auth.views.login'),
url(r'^logout$', 'guide.views.logout_view'),
# other patterns
(r'', include('django.contrib.flatpages.urls')),
)
视图.py
def home(request):
if request.user.is_authenticated() == False:
return HttpResponseRedirect('/')
return HttpResponseRedirect('/home/')
摘自 settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'guide.middleware.LogActivity'
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'django.contrib.admin',
'guide',
)