私は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を修正できますか?