0

Pythonを初めて使用し、エラーメッセージの表示に問題があります。次のような呼び出しを行うjavascript関数があります。

$.getJSON('test.py', {data: 'somedata'}, function(return){alert(return.echo)})

そして、test.pyファイルはそのメッセージを正常にエコーします:

def application(environ, start_response):
  import json
  status = '200 OK'
  response_headers = [('Content-type', 'application/json')]
  start_response(status, response_headers)
  data = environ['QUERY_STRING'].split('=')[1])   
  return json.dumps({'echo': data}, separators=(',',':'))

注意:メモリからそのスクリプトを再入力したので、構文エラーに気付いた場合は、キーを間違えたので、基本スクリプトは正常に機能しています。

通話でページを実行するとアラートが表示され、Chromeの[ネットワーク]タブにアクセスすると次のように表示されます

Request URL:http://localhost/test.py?data=somedata
Request Method:GET
Status Code:200 OK

[プレビュー]タブと[応答]タブには、次のように表示されます。

{"echo":"testdata"}

ただし、実際のエラーをスクリプトにスローして(この学習期間中はほとんどありません!)、Chromeでページをテストすると、[ネットワーク]タブに呼び出しが行われていることが表示されます。

Request URL:http://localhost/test.py?data=somedata
Request Method:GET
Status Code:500 Internal Server Error

Query String Parameters: (view URL encoded)
    data:'somedata'

しかし、プレビューをクリックすると、次のように表示されます。

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Apache/2.2.21 (Unix) DAV/2 mod_wsgi/3.3 Python/2.6.7 Server at localhost Port 80

私の質問は、このウィンドウを使用して、スタックトレースや、問題の診断に役立つ情報を表示できるかどうかです。私は現在、Pythonを毎秒愛していることを除いて、すべてのデバッグを試行錯誤で行っています。

誰かが私を正しい方向に向けることができるでしょうか?

編集:このページ:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques

「エラーキャッチミドルウェア」という見出しの下に解決策がありますが、それらの例は私には機能しません。

4

1 に答える 1

1

QUERY_STRINGが与えられないことを許容するようにコードを記述してみてください。以下は、存在しない場合は失敗します。

data = environ['QUERY_STRING'].split('=')[1])

一般に、このような小さなことが問題にならないようにする何らかのフレームワークを使用することをお勧めします。

小さなマイクロフレームワークの良い例としてFlaskを参照してください。

于 2012-04-23T20:36:20.400 に答える