Ответ 1
в зависимости от того, где вы хотите имитировать такое, вы могли бы просто спать?
from time import sleep
sleep(500)
Простой вопрос действительно
./manage.py runserver
Можно ли замедлить localhost:8000
на моей машине разработки, чтобы я мог имитировать загрузку файлов и работать над внешним видом загрузки ajax?
в зависимости от того, где вы хотите имитировать такое, вы могли бы просто спать?
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 есть также бесплатное приложение, которое позволит это:
Вы можете написать настраиваемый обработчик загрузки или обработчик текущей подклассы подкласса, чтобы в основном замедлить receive_data_chunk()
. Или установите контрольную точку pdb внутри receive_data_chunk()
и вручную выполните загрузку. Или даже проще, попробуйте загрузить большой файл.
Использование медленного обработчика загрузки файлов из 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, как указано в https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#id1
Я большой поклонник прокси-сервера Charles HTTP. Он позволяет дросселировать соединение и может имитировать все виды сетевых условий.