示例
带有参数的视图函数
假设我们有一个名为“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”作为参数。