0

我是 django 的新手,我对如何使用 django 的 url 模式匹配有点困惑。

这是我的意图。我有一个网站的 4 页。根据链接,他们将使用 url 来查找要呈现给用户的信息。url 也知道用户在哪个页面上。

所以这个人会根据链接选择建筑物。然后该人将选择他们希望继续的楼层。最后这个人会选择一个房间。

前任。格式:aaa.com/buildingname/floornumber/roomnumber

step0 aaa.com/

step1 aaa.com/django/

step2 aaa.com/django/2/

第三步 aaa.com/django/2/201

因此,根据 url 模式,网站每次都应该以不同的方式加载。

这是我应该如何使用 url 模式匹配吗?我真的很想在这方面得到一些帮助。url 模式应该是什么样的?截至目前,我能想到的只是将 url 匹配到具有视图的不同应用程序中。我只是不知道如何将它们链接在一起。

我有一个带有建筑物、楼层和房间号的 MySQL 数据库。

提前谢谢大家。我感谢你的努力。

4

2 回答 2

1

定义指向不同视图的 url 模式如下:

urlpatterns = patterns('your_app.views', 
                   (r'^/(?P<building_name>\w+)/$','function1'),
                   (r'^/(?P<building_name>\w+)/(?P<floor>\d+)/$','function2'),
                   (r'^/(?P<building_name>\w+)/(?P<floor>\d+)/(?P<room>\d+)/$','function3'),
                   )

使用此模式,它将调用不同的视图,并且在每个视图中您可以使用不同的模板。或者,如果您想使用相同的视图函数检查 URL 中的可用值并呈现您需要的任何模板。您可以在视图中获取 URL 值,如下所示:

def function1(request, building_name = None):
    print building_name

同样为其他视图也这样做。

于 2012-10-17T06:37:25.707 回答
1

如果您希望它们在同一视图中处理,您可以将参数传递给同一视图,

r('/(?P<building>\w+)/','views.view1')
r('/(?P<building>\w+)/(?P<flat>\w+)/','views.view1')
r('/(?P<building>\w+)/(?P<flat>\w+)/(?P<room>\w+)/','views.view1')

你的看法,

def view1(buidling="",flat="",room=""):
 return []
于 2012-10-17T06:38:18.813 回答