0

チュートリアルの助けを借りて Django を使用して最初の一歩を踏み出しましたが、アクションの結果がわかりませんでした。

Python スクリプトを変更してページを更新すると、古いバージョンのスクリプトを保存しているキャッシュがあるように見えます。

例 このエラーが発生しました:

global name 'Poll' is not defined
Exception Location: /var/www/pythonRoot/scrapfull/polls/views.py in index, line 5

Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 111.  response = callback(request, *callback_args, **callback_kwargs)
File "/var/www/pythonRoot/scrapfull/polls/views.py" in index 5. return HttpResponse("Hello, world. Vous etes a l'index des sondages.")

そのため、Poll モデルに関するエラー行 5 が表示されますが、このテスト済みスクリプトには Poll アクションの呼び出しはありません。しかし、以前は 5 行目が latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]'

更新すると、現在保存されているスクリプトの解釈が表示されないのはなぜですか? さらに、「更新」を熱狂的に押すと、ランダムな結果が表示されます。なんで?

私のconf:Apache + mod_wsgi

4

1 に答える 1

1

もちろん、パフォーマンス上の理由からキャッシュがあります。mod_wsgi は、誰かがアプリにアクセスするたびにスクリプトを再読み込みするのではなく、スクリプトをメモリに保持します。

mod_wsgi をデーモン モードで実行している場合、mod_wsgi にソースをリロードするように指示する最も簡単な方法は、ファイルをtouching することです。.wsgi

$ touch path/to/your/app.wsgi

そうしないと、Apache を再起動する必要があります。

(このページも参照)


スクリプトを自動的にリロードするため、開発には Django の組み込み Web サーバーを使用することをお勧めします。

于 2013-06-09T17:01:19.560 に答える