我能把Django的车开慢一点吗

我能把Django的车开慢一点吗,django,http,Django,Http,真是个简单的问题 ./manage.py runserver 我可以在我的开发机器上减慢localhost:8000,这样我就可以模拟文件上传并处理ajax上传的外观吗?您可以编写一个或子类化当前上传处理程序来主要减慢其中的方法。或者在接收数据块()中设置pdb断点,然后手动继续上载。或者更简单一点,试着上传一些大文件。取决于你想在哪里模拟,你可以简单地睡觉吗 from time import sleep sleep(500) 在osx或freebds上,您可以使用ipfw限制特定端口上的带

真是个简单的问题

./manage.py runserver

我可以在我的开发机器上减慢
localhost:8000
,这样我就可以模拟文件上传并处理ajax上传的外观吗?

您可以编写一个或子类化当前上传处理程序来主要减慢其中的方法。或者在
接收数据块()中设置pdb断点,然后手动继续上载。或者更简单一点,试着上传一些大文件。

取决于你想在哪里模拟,你可以简单地睡觉吗

from time import sleep
sleep(500)

在osx或freebds上,您可以使用
ipfw
限制特定端口上的带宽:

  sudo ipfw pipe 1 config bw 1Bytes/s delay 100ms
  sudo ipfw add 1 pipe 1 src-port 8000
当您不再需要它时,请不要忘记将其删除:

sudo ipfw delete 1

对于osx,还有一个免费的应用程序允许:


我是Charles HTTP代理的忠实粉丝。它允许您限制连接,并可以模拟各种网络条件


使用django gubbins的慢速文件上载处理程序:

import time
from django.core.files.uploadhandler import FileUploadHandler

class SlowFileUploadHandler(FileUploadHandler):
    """
    This is an implementation of the Django file upload handler which will
    sleep between processing chunks in order to simulate a slow upload. This
    is intended for development when creating features such as an AJAXy
    file upload progress bar, as uploading to a local process is often too
    quick.
    """
    def receive_data_chunk(self, raw_data, start):
        time.sleep(2)
        return raw_data

    def file_complete(self, file_size):
        return None
您可以通过将其添加到以下位置来全局启用此功能:

FILE_UPLOAD_HANDLERS = (
    "myapp.files.SlowFileUploadHandler",
    "django.core.files.uploadhandler.MemoryFileUploadHandler",
    "django.core.files.uploadhandler.TemporaryFileUploadHandler",
)
或针对特定请求启用它:

request.upload_handlers.insert(0, SlowFileUploadHandler())

确保该请求不在CSRF检查范围内,如

中所述,如果您想在所有请求中减慢速度,一个非常简单的方法就是使用ngrok。使用ngrok url进行请求,然后连接到另一个国家/地区的vpn。这会让你的请求变得非常缓慢

在允许您控制执行速度的虚拟化环境中运行它?您可以上载更大的文件。这是我最喜欢的在客户端测试HttpRequest超时的方法。只是一个警告,sleep的参数以秒为单位。所以500是非常慢的:但是,你能在所有视图中都这么做吗?我喜欢这种方法来测试页面加载速度较慢的访问者。当元素不断加载时,DOM处理看起来非常不同!因此,如果我在Mac电脑上从
localhost
Django服务器在同一台服务器上测试网页,这将模拟延迟的页面加载?我喜欢ngrok。太可怕了