如何将一个变量从url传递到django中的视图?

时间:2010-08-27 10:24:05

标签: python django

简单的问题。

如何将URL中的变量传递给视图?我正在关注Date Example

我的观点需要争论:

def hours_ahead(request, offset):

我的url.py有这个“

(r'^plus/\d{1,2}/$', hours_ahead),

我知道我需要传递另一个参数,但我不知道如何从URL字符串中获取数字(即'time / plus / 4 /'。这样的东西?< / p>

(r'^plus/\d{1,2}/$', hours_ahead, offset=??),

4 个答案:

答案 0 :(得分:1)

您可以在正则表达式中使用Named groups

(r'^plus/(?P<offset>\d{1,2})/$', hours_ahead),

答案 1 :(得分:0)

我不确定我清楚地理解你的问题。以下是我根据自己的理解回答的问题。

在您的网址配置中添加named regex group应该会有所帮助:

(r'^plus/(?P<offset>\d{1,2})/$', hours_ahead),

这样可以保留现有视图:

def hours_ahead(request, offset):
    ...

答案 2 :(得分:0)

您可以添加其他变量:

(r'^plus/\d{1,2}/$', {'hours' : 5},  hours_ahead),

祝你好运!

答案 3 :(得分:0)

来自chapter 3 of the django book

  

现在我们已经为URL指定了通配符,我们需要一种方法   将那个通配符数据传递给view函数,这样我们就可以使用了   任意小时偏移的单一视图功能。我们这样做   在我们想要的URLpattern中的数据周围放置括号   保存。在我们的例子中,我们想要保存任何数字   在URL中输入,所以让我们在\ d {1,2}周围加上括号,就像   这样:

(r'^time/plus/(\d{1,2})/$', hours_ahead),
  

如果你熟悉正则表达式,那么你就会在家里   这里;我们使用括号从匹配的文本中捕获数据。