gpt4 book ai didi

django - 为什么django在用户登录并显示一个平面页面后返回301和302作为服务器响应代码?

转载 作者:可可西里 更新时间:2023-11-01 15:19:27 24 4
gpt4 key购买 nike

我正在创建一个 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')。

为什么服务器对 put 请求返回 302 响应?

是什么导致了第三行?为什么要发送此消息?这不应该是 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')),
)

View .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',
)

最佳答案

我看不到主页 View 的 url 模式。但这可能是使 django 发出自动重定向的缺少的斜杠:

https://docs.djangoproject.com/en/dev/ref/settings/#append-slash

Is my web client sending the request underling the fourth line? How does it know to do this?

是的,Status code 301第 3 行告诉浏览器“您请求的页面已移至另一个 url x”。浏览器通常会自动向第 4 行的新 url x 发送新请求。

关于django - 为什么django在用户登录并显示一个平面页面后返回301和302作为服务器响应代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com