0

私は Python と Django のまったくの初心者であり、http ポストを介して単純な Web アプリにデータを渡して遊んでいます。私は Django のチュートリアルを読み、何が教えられているかをよく理解していましたが、urls.py 正規表現のフィルタリングを完全には理解していません。http get として urlopen() を正常に使用しました。POSTに使用してもあまり成功しません。私のアプリの urls.py (プロジェクトの urls.py ではない) が、POST が私のアプリの views.py に到達することを許可していないように見えます。最終的には、POST を介してパッシブなデータを取得し、応答で返したいと考えています。ここに私が持っているものがあります:

私のプロジェクトurls.py:

urlpatterns = patterns('',
url(r'^timeapp/', include('timeapp.urls')),
    url(r'^datasink/', include('datasink.urls')),       
    url(r'^admin/', include(admin.site.urls)),
)

データシンク/urls.py:

urlpatterns = patterns('',
        (r'^$', views.index),
)

datasink/views.py

def index(request):
    if request.method == 'GET':
        return HttpResponse("This was a GET")
    else:
        return HttpResponse("This was a not a GET ... POST?")

クライアント側

from urllib2 import Request, urlopen, URLError, build_opener, HTTPHandler
import urllib

url = "http://127.0.0.1:8080/datasink/"
data = {'name':'joe'}

encodedData = urllib.urlencode(data)
req = Request(url)
req.add_data(encodedData)

try:
    response = urlopen(req)
    print "We received the following response from our httpREQ: " +response.read()
    print "The response.geturl(): " +response.geturl()
except URLError as e:
    if hasattr(e, 'reason'):
        print 'We failed to reach a server.'
        print 'Reason: ' +str(e.reason) +str(e.code)
    elif hasattr(e, 'code'):
        print 'The server couldn\'t fulfill the request.'
        print 'Error code: ' + str(e.code)
    else:
        pass

サーバー側のエラー:

例外 AttributeError: AttributeError("'_DummyThread' オブジェクトには属性 ' Thread _block' がありません",) は無視されました [02/Apr/2013 05:15:57] "POST /datasink HTTP/1.1" 500 54048


クライアントへのメッセージ:

サーバーにアクセスできませんでした。理由: 内部サーバー エラー


どんなガイダンスでも大歓迎です。私はさまざまな正規表現を試してみましたが、うまくいきませんでした。

4

1 に答える 1