📜  django 可选路径参数 - Python (1)

📅  最后修改于: 2023-12-03 14:40:46.988000             🧑  作者: Mango

Django 可选路径参数

在 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 应用。