django中url如何带参数
时间: 2024-02-05 18:11:55 浏览: 85
在Django中,我们可以使用正则表达式或者命名组来捕获URL中的参数。下面分别介绍两种方法:
1. 正则表达式方式
我们可以在URL的正则表达式中使用小括号()来捕获参数,如下所示:
```python
from django.urls import path
from . import views
urlpatterns = [
path('books/<int:book_id>/', views.book_detail),
]
```
在上面的例子中,我们使用了`<int:book_id>`来匹配一个整数类型的参数,并且给这个参数起了一个名字叫做`book_id`。在视图函数中,我们可以通过`request.GET.get('book_id')`或者`kwargs['book_id']`来获取这个参数的值。
2. 命名组方式
我们也可以使用命名组来捕获参数,如下所示:
```python
from django.urls import path, re_path
from . import views
urlpatterns = [
re_path(r'^books/(?P<book_id>\d+)/$', views.book_detail),
]
```
在上面的例子中,我们使用了`(?P<book_id>\d+)`来匹配一个数字类型的参数,并且给这个参数起了一个名字叫做`book_id`。在视图函数中,我们可以通过`request.GET.get('book_id')`或者`kwargs['book_id']`来获取这个参数的值。
需要注意的是,如果我们使用了命名组方式来捕获参数,那么在URL模式中必须使用`re_path`函数,而不能使用`path`函数。
阅读全文