📅  最后修改于: 2023-12-03 14:40:46.988000             🧑  作者: Mango
在 Django 中,我们可以通过路由配置来指定请求 URL 和相应的视图函数之间的映射关系。在路由配置中,可以使用路径参数来捕获 URL 中可变的部分,并将其传递给视图函数进行处理。
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('users/<int:user_id>/', views.get_user),
]
在这个例子中,<int:user_id>
是一个路径参数,它会捕获一个整数,并将其传递给 get_user
视图函数作为参数。
Django 还提供了一种可选路径参数的方式,即在路径参数后面添加一个问号 ?
。例如:
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('users/<int:user_id>/', views.get_user),
path('users/active/?<int:days>/', views.get_active_users),
]
在这个例子中,<int:days>
是一个可选路径参数,它会捕获一个整数,并将其传递给 get_active_users
视图函数作为参数。如果 URL 中不包含该可选路径参数,则视图函数不会接收到该参数。
需要注意的是,可选路径参数只能在路径参数的末尾添加,不能在中间或开头。例如,下面的路由配置是不合法的:
# 错误的路由配置
urlpatterns = [
path('users/active/?<int:days>/<int:user_id>/', views.get_active_user),
]
如果您需要在 URL 中添加可选参数,但并不想通过路径参数来实现,可以考虑使用查询参数(Query Parameters)来替代。例如:
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('users/<int:user_id>/', views.get_user),
path('users/active/', views.get_active_users),
]
在这个例子中,/users/active/
是请求 URL,get_active_users
视图函数可以通过 request.GET
属性获取查询参数中的参数值。
以上就是 Django 可选路径参数的简单介绍。通过合理地使用路径参数和可选路径参数,我们可以轻松地构建出灵活、具有可扩展性的 Web 应用。