在Django REST Framework中未使用API​​View解析URL

时间:2014-11-20 11:01:45

标签: django django-rest-framework

我开始使用DRF并在尝试设置一个简单的APIView时遇到了一些麻烦。

这是观点:

class SongSearchView(views.APIView):
    def get(self, request, query, format=None):
        return Response(['Justin Bieber - Boyfriend', 'Justin Timberlake - My Love'])

这些是网址格式:

router = DefaultRouter()

urlpatterns = patterns('',
                   url(r'^api/song_search/(?P<query>[a-zA-Z0-9\w]+)/$', views.SongSearchView.as_view()),
                   url(r'^admin/', include(admin.site.urls)),
                   url(r'^api/', include(router.urls)),
                   url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
                   url(r'^$', views.index, name='index'),
)

当我尝试访问http://127.0.0.1:8000/api/song_search/?query=justin时,我得到了

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/api/song_search/?query=justin

问题是什么? :(

1 个答案:

答案 0 :(得分:4)

您的Url模式正则表达式错误..如果您仍想坚持当前的网址格式,我建议您更改您的请求网址  http://127.0.0.1:8000/api/song_search/?query=justinhttp://127.0.0.1:8000/api/song_search/justin