0

私はRESTを少し学ぼうとしています。既存のDjangoアプリにいくつかのビューを追加して、RESTとJSONを使用してさまざまなことを試してみました。アプリにいくつかのビューを介して要求されたデータを送信させることはできますが、URLの一部としてJSONを受け入れるようにアプリを取得できないようです。

次のようなビューを作成しました。

def restCreateEvent(request、key、jsonString):エラー= checkKey(key)

if errors == None:
    eventJson = json.loads(jsonString)

    eventInfo = eventJson['event']
    title = eventInfo['title']
    description = eventInfo['description']

    locationInfo = eventInfo['location']

    place = locationInfo['place_name']
    street = locationInfo['street_address']
    city = locationInfo['city']
    state = locationInfo['state']
    zip = locationInfo['zip']

    event = models.Event()
    event.title = title
    event.description = description
    event.street_address = street
    event.place_name = place
    event.city = city
    event.state = state
    event.zip = zip
    event.save()

else:
    return errors

ただし、URLを正しく取得できないようです。現在、次のようになっています。

(r'^events/rest/create/(?P<key>\d+)/(?P<jsonString>.+)', 'events.views.restCreateEvent')

次のURLにアクセスしようとすると、Djangoデバッグは私のURLのどれもそれに一致しないと文句を言います。

http://127.0.0.1:8000/events/rest/33456/create/{"title":"test","description":"this is a    test","location":{"place_name":"somewhere","street_address":"123   main","city":"pittsburgh","state":"pa","zip":"11111"}}

現在、ビューが呼び出されることはないので、明らかに私のURLが間違っています。それで、私のアプローチはここで完全に間違っていますか?そうでない場合、どうすればURLを修正できますか?

4

1 に答える 1

0

なぜあなたはこれをしますか?他のペイロードと同様に、JSONを送信する方法は、URLではなくPOSTデータにJSONを配置することです。

于 2012-08-04T17:39:02.453 に答える