这很简单明了但我无法做到:
我在urls.py中声明了以下视图函数
(r'^v1/(\d+)$', r'custom1.views.v1'),
Run Code Online (Sandbox Code Playgroud)
最初我将一个参数传递给视图函数v1.我想修改它以传递2个参数.如何在urls.py中声明条目以获取两个参数?
And*_*ron 12
假设你想要的网址看起来像v1/17/18,并获得两个参数17和18,你可以声明图案:
(r'^v1/(\d+)/(\d+)$', r'custom1.views.v1'),
Run Code Online (Sandbox Code Playgroud)
确保v1除了请求对象之外还接受两个参数:
def v1 ( request, a, b ):
# for URL 'v1/17/18', a == '17' and b == '18'.
pass
Run Code Online (Sandbox Code Playgroud)
关于URL调度程序的文档中的第一个示例包含几种模式,其中最后一种采用2和3个参数.
j_s*_*syk 12
在某个地方,我养成了在正则表达式中直接命名它们的习惯,虽然老实说我不知道它是否有所作为.
#urls:
(r'^v1/(?P<variable_a>(\d+))/(?P<variable_b>(\d+))/$', r'custom1.views.v1')
#views:
def v1(request, variable_a, variable_b):
pass
Run Code Online (Sandbox Code Playgroud)
此外,用一个尾随斜线结束网址是非常Django - Django Design Philosophy,FYI
我相信正则表达式中的每个组都作为参数传递(如果需要,您可以命名它们):
(r'^v1/(\d+)/(\d+)/$', r'custom1.views.v1')
Run Code Online (Sandbox Code Playgroud)
查看以下示例:https://docs.djangoproject.com/en/dev/topics/http/urls/.您也可以为您的群组命名.
小智 5
在 Django 2.x 和 3.x 中:
网址:
path("courses/<slug:param1>/<slug:param2>", views.view_funct, name="double_slug")
Run Code Online (Sandbox Code Playgroud)
模板:
<a href="{% url 'double_slug' param1 param2 %}">Click {{param2}}!</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34741 次 |
| 最近记录: |