我可以慢下来了的Django(Can I slow down Django)

2019-07-29 03:13发布

简单的问题真的

./manage.py runserver

我可以慢下来了localhost:8000我的机器上,所以我可以模拟在阿贾克斯上传的外观和感觉的文件上传和工作?

Answer 1:

这取决于您要模拟这样你可以简单地睡了吗?

from time import sleep
sleep(500)


Answer 2:

在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

信用:jaguarcy

对于OSX也有免费的应用程序,将允许这样的:

http://slowyapp.com/



Answer 3:

你可以写一个自定义的上传处理或继承当前上传处理程序主要是减缓receive_data_chunk()方法吧。 或者设置里面PDB断点receive_data_chunk()和手动进行上传。 或者更简单,试着上传一些大的文件。



Answer 4:

我是查尔斯HTTP代理的忠实粉丝。 它可以让你油门的连接,并可以模拟各种网络条件。

http://www.charlesproxy.com/



Answer 5:

使用来自Django的格宾斯缓慢的文件上传处理程序:

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检查例外,他们在提到https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#id1



Answer 6:

如果你想慢下来在所有请求一个非常简单的方法去将是使用ngrok https://ngrok.com/ 。 使用ngrok URL的请求,然后连接到另一个国家的VPN。 这将使您的要求真的很慢。



文章来源: Can I slow down Django
标签: django http