17

本当に簡単な質問

./manage.py runserver

localhost:8000ファイルのアップロードをシミュレートし、ajax アップロードのルック アンド フィールに取り組むことができるように、開発マシンの速度を落とすことはできますか?

4

6 に答える 6

16

シミュレートしたい場所に応じて、単に寝ることができますか?

from time import sleep
sleep(500)
于 2012-04-24T15:13:17.213 に答える
8

ipfwosx または freebds では、特定のポートの帯域幅を制限するために使用できます。

  sudo ipfw pipe 1 config bw 1Bytes/s delay 100ms
  sudo ipfw add 1 pipe 1 src-port 8000

不要になったら忘れずに削除してください。

sudo ipfw delete 1

クレジット:

osx には、これを可能にする無料のアプリもあります。

http://slowyapp.com/

于 2012-04-24T15:18:01.427 に答える
4

カスタマイズされたアップロードハンドラーまたは現在のアップロードハンドラーをサブクラス化して、主にその中のメソッドを遅くすることができますreceive_data_chunk()。または、内部にpdbブレークポイントを設定しreceive_data_chunk()、手動でアップロードを続行します。または、もっと簡単に、大きなファイルをアップロードしてみてください。

于 2012-04-24T13:54:26.943 に答える
1

私は Charles HTTP Proxy の大ファンです。接続を調整し、あらゆる種類のネットワーク条件をシミュレートできます。

http://www.charlesproxy.com/

于 2012-04-24T20:08:51.873 に答える
1

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())

https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#id1に記載されているように、リクエストが CSRF チェックから除外されていることを確認してください。

于 2014-07-28T13:32:46.553 に答える
1

すべてのリクエストで速度を落としたい場合、非常に簡単な方法は ngrok https://ngrok.com/を使用することです。リクエストに ngrok URL を使用してから、別の国の VPN に接続します。これにより、リクエストが非常に遅くなります。

于 2018-04-18T11:05:53.133 に答える