Django:IE不加载本地主机或加载速度很慢



我刚刚开始学习Django,在我的电脑上构建一个项目,运行Windows 7 64位,Python 2.7,Django 1.3。

基本上无论我写什么,它都会立即加载到Chrome和Firefox中。但是对于IE(版本9),它只是停在那里,什么也不做。我可以在IE上加载"http://127.0.0.1:8000"并使计算机打开数小时,但它无法加载。有时,当我刷新几次或重新启动IE时,它会起作用。如果我更改代码中的某些内容,Chrome 和 Firefox 会立即反映更改,而 IE 不会 - 如果它加载页面的话。

这是怎么回事?我在这里失去理智...

它可能与此问题有关:https://code.djangoproject.com/ticket/16099

从本质上讲,开发服务器不是多线程的,如果浏览器打开一个连接,然后尝试第二个连接来实际获取数据,它可能会永远挂起。

编辑:

另外,请参阅此问题:https://code.djangoproject.com/ticket/15178

如果您可以提供重现问题的方法,我们也许能够找到修复程序。

此外,如果您可以尝试最新的开发版本并查看是否可以修复它,我们最近提交了一个新的补丁,该补丁为 runserver 命令添加了多线程功能。

我不确定你是否有和我一样的问题。但是我也在IE9上遇到了相同的白页,显然这是由html标签"fieldset"隐藏我的表单引起的。

尝试验证您的 html 代码或检查 html 标记与 IE9 的兼容性。希望对您有所帮助。

我正在使用Windows 7,64位,django 1.3,py 2.6进行开发,并且我总是在IE,Firefox,Safari和Chrome中检查开发服务器的功能。我的最新系统有IE9,我的旧系统有IE8。我还注意到了悬挂问题。我发现当我使用 127.0.0.1:8000 时,它会挂起并刷新才能使其工作。如果我使用开发服务器的特定 IP 地址启动开发服务器,问题似乎消失了。例如 python manage.py runserver 192.168.1.134:8000

似乎确实是IE9非常具体的东西。 如果你谷歌它,更多的人已经看到了这个问题。

我也遇到了这个问题,此解决方法可以修复。 仅适用于 Django <= 1.3
http://nedbatchelder.com/blog/201103/quick_and_dirty_multithreaded_django_dev_server.html

@Andrew理发师
编辑总结/我是如何做到的:
创建名为 managec.py (C=并发)
的文件将以下代码粘贴到其中:

#!/usr/bin/env python
# 
# A clone of manage.py, with multi-threadedness monkeypatched in.
import os, sys
from django.core.management import execute_manager
try:
    import settings # Assumed to be in the same directory.
except ImportError:
    sys.stderr.write(
        "Error: Can't find the file 'settings.py' in the directory containing %r. "
        "It appears you've customized things.n"
        "You'll have to run django-admin.py, passing it your settings module.n"
        "(If the file settings.py does indeed exist, it's causing an ImportError somehow.)n" 
        % __file__
        )
    sys.exit(1)
def monkey_patch_for_multi_threaded():
    # This monkey-patches BaseHTTPServer to create a base HTTPServer class that 
    # supports multithreading 
    import BaseHTTPServer, SocketServer 
    OriginalHTTPServer = BaseHTTPServer.HTTPServer
    class ThreadedHTTPServer(SocketServer.ThreadingMixIn, OriginalHTTPServer): 
        def __init__(self, server_address, RequestHandlerClass=None): 
            OriginalHTTPServer.__init__(self, server_address, RequestHandlerClass) 
    BaseHTTPServer.HTTPServer = ThreadedHTTPServer
if __name__ == "__main__":
    monkey_patch_for_multi_threaded()
    execute_manager(settings)


使用 ./managec.py RunServer 8080(或您使用
的任何端口)启动开发服务器享受:)

有时,当您有不寻常的代码时,就会发生这种情况,例如我在 HttpResponse 之前有一行从用户那里获取输入。删除该代码并刷新服务器。它会像魅力一样工作。

相关内容

  • 没有找到相关文章

最新更新