Django REST Framework-配置路由示例

2023-04-25 08:54:24 浏览数 (1)

示例

带有参数的视图函数

假设我们有一个名为“search”的视图函数,它需要一个字符串参数来指定要搜索的关键字。我们可以使用DRF路由系统来匹配这个字符串参数。下面是一个示例:

代码语言:javascript复制
from django.urls import path
from .views import search_view

urlpatterns = [
    path('search/<str:query>/', search_view, name='search'),
]

在上面的代码中,我们使用<str:query>来定义一个名为“query”的字符串参数,并将其与视图函数search_view相关联。现在,当客户端请求/search/somekeyword/时,它将调用search_view函数并传递“somekeyword”作为参数。

带有动态参数的视图类

假设我们有一个名为“article”的视图类,它需要一个整数参数来指定要检索的文章ID。我们可以使用DRF路由系统来匹配这个整数参数。下面是一个示例:

代码语言:javascript复制
from django.urls import path
from .views import ArticleDetail

urlpatterns = [
    path('articles/<int:pk>/', ArticleDetail.as_view(), name='article_detail'),
]

在上面的代码中,我们使用<int:pk>来定义一个名为“pk”的整数参数,并将其与视图类ArticleDetail相关联。现在,当客户端请求/articles/123/时,它将调用ArticleDetail视图类的get方法,并将“123”作为pk参数传递给它。

带有多个参数的视图函数

假设我们有一个名为“filter”的视图函数,它需要两个参数来指定要过滤的列表和要过滤的条件。我们可以使用DRF路由系统来匹配这些参数。下面是一个示例:

代码语言:javascript复制
from django.urls import path
from .views import filter_view

urlpatterns = [
    path('filter/<str:list_name>/<str:filter_condition>/', filter_view, name='filter'),
]

在上面的代码中,我们使用<str:list_name><str:filter_condition>来定义两个名为“list_name”和“filter_condition”的字符串参数,并将它们与视图函数filter_view相关联。现在,当客户端请求/filter/products/onsale/时,它将调用filter_view函数并传递“products”和“onsale”作为参数。

0 人点赞