如何将URL中的变量传递给django中的视图?

如何将URL中的变量传递给django中的视图?

问题描述:

简单的问题。如何将URL中的变量传递给django中的视图?

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

我的观点需要的参数:

def hours_ahead(request, offset): 

我url.py有这个”

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

我知道我需要通过传递另一个说法,但我不知道怎么弄的(例如'time/plus//'。类似这样的内容?

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

您的网址只有一个数字。只有一个。那个号码是什么?小时提前或抵消? – 2010-08-27 10:26:34

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

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

我不知道我理解你的问题清楚。这是我根据我的理解回答的镜头。

添加named regex group你的URL配置应该有所帮助:

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

这将让你保持现有的视图:

def hours_ahead(request, offset): 
    ... 

您可以添加额外的变量是这样的:

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

此致敬礼!

chapter 3 of the django book

现在我们已经指定的URL通配符,我们需要的 的方式,通配符数据传递到视图功能,让我们可以用一个 单一视图功能任意小时偏移。我们通过 在URL模式中的数据周围放置括号来表示我们想要 保存。在我们的例子中,我们要保存的任何数量的URL进入 ,所以让我们把周围的\ d {1,2}括号,像这样 :

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

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