Python Django提供零字节响应
这只发生在我的一个网站上,我不知道是什么原因造成的。Python Django提供零字节响应,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,这只发生在我的一个网站上,我不知道是什么原因造成的。 这种情况发生在mod_wsgi为特定应用程序提供的任何URL上,该应用程序过去运行良好 settings.py中的语法错误导致HTTP 500。 urls.py中的语法错误不会影响任何内容,似乎从未加载此文件 有什么要检查的吗?罪魁祸首是这句话: from django.contrib.auth.forms import AuthenticationForm 在middleware.py中 将导入移动到使用AuthenticationFo
这种情况发生在mod_wsgi为特定应用程序提供的任何URL上,该应用程序过去运行良好
settings.py中的语法错误导致HTTP 500。
urls.py
中的语法错误不会影响任何内容,似乎从未加载此文件
有什么要检查的吗?罪魁祸首是这句话:
from django.contrib.auth.forms import AuthenticationForm
在middleware.py
中
将导入移动到使用AuthenticationForm
的函数中,解决了以下问题:
from django.http import HttpResponseRedirect
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import login
#from django.contrib.auth.forms import AuthenticationForm <-- THE LINE WAS HERE
class LoginFormMiddleware(object):
def process_request(self, request):
if request.method == 'POST' and 'is_top_login_form' in request.POST:
from django.contrib.auth.forms import AuthenticationForm # <-- MOVED HERE
form = AuthenticationForm(data=request.POST)
is_valid = form.is_valid()
if is_valid:
login(request, form.get_user())
program = request.user.get_profile().first_intern.program
NavigationMiddleware.set_program(request, program)
return HttpResponseRedirect('%s?quick' % program.get_absolute_url())
else:
messages.error(request, request.POST['username'], extra_tags='login')
return HttpResponseRedirect(request.get_full_path())
从django.http导入HttpResponseRedirect
从django.conf导入设置
从django.contrib导入消息
从django.contrib.auth导入登录
#从django.contrib.auth.forms导入AuthenticationForm您是否尝试使用开发服务器运行应用程序以查看所有设置是否正常以及是否显示任何错误?(当然,不要在端口80上这样做)。@Thomas,它说发现了0个错误。您的Web服务器似乎是Apache,您是否检查了error.log文件?是的,我检查了。日志中没有错误,什么都没有。您重新启动了Apache吗?Apache将仅在重新启动时重新加载这些文件,而开发服务器将监视这些文件的更改。是否在settings.py中对中间件类设置进行了任何更改?django文件不应该是罪魁祸首。中间件类对顺序非常挑剔。这是否被修改过?不,我没有更改中间件类的顺序,或者说,没有更改设置.py
。我可以通过删除该导入的注释来重现问题。