Django Rest框架url分派

2024-06-25 23:20:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试与SWAPI API交互。在

我想要一个获取所有电影的视图(films/)和一个获取一个(film/id)的视图。在

当我点击http://127.0.0.1:8000/api/films/?id=4时,它进入get_films函数。在

我使用的是Django==1.11和Django Rest Framework==3.9.0。在

我的urs.py:

urlpatterns = [
    url(r'films/',views.get_films,name="get-films"),
    url(r'films/(?P<id>[0-9])/',views.get_film,name="get-film"),
]

我的视图.py:

^{pr2}$

Tags: djangonamepy视图apiidhttpurl
2条回答

物质的顺序。请尝试更改URL的顺序。它可能与第一个匹配,但没有到达第二个。在

你的实现有两个错误。首先,get_film。这个方法中的参数是错误的。你需要这样定义它:

@api_view(['GET', 'POST'])
def get_film(request, id):  # <  First argument is request which is for `HttpRequest` object. Second is `id` which is for mapping it with the url's id. 
    print('entered')
    request_url = API_URL + "films/" + str(id) 
    # rest of the code

第二,当调用这个api时,您需要这样做:http://127.0.0.1:8000/api/films/4/

相关问题 更多 >