我正处于单一网页应用程序的设计阶段,我想让用户点击格式化的URL,然后将数据请求加载到页面中。
例如,http://www.mysite.com/?category=some_cat的url将使用相关数据触发Category视图。
我的目的是解析URL,收集数据,然后将其传递给index.html模板,以便在页面加载时呈现。加载页面后,Javascript触发器设置将触发适当的按钮来加载客户端视图。
但是,我在设置URL解析器时遇到了问题,因为下面的设置与上面的示例url不匹配。
from app.views import app_views, photo_views, user_views, admin_views
urlpatterns = patterns("",
url(r'^/(?P<category>\d+)/$', app_views.index)
)发布于 2013-10-06 14:21:32
您混淆了通过GET通过urls发送信息和用视图函数的参数格式化urls之间的混淆。假设我正在访问一个名为http://www.mysite.com/的站点,该页面的表单如下所示:
<form>
<input type='text' name='category' id='category'></input>
<button type='submit'>Send!</button>
</form>单击后,url将自动更改为http://www.mysite.com/?category=<value of input>。?标志着以后的一切都应该用<id>=<value>的语法作为GET数据来处理。然后,您可以这样访问它们:
def response(request):
category = request.GET['category']格式化url是不同的,因为它意味着查找作为url的部分的模式。例如,类似于r'^/(?P<category>\d+)/$'的模式将查找以下内容:http://www.mysite.com/<category>/,并将其作为附加参数发送到视图中的请求,如下所示:
def response(request, category):
...regex用于定义如何识别url的这一部分。例如,您使用的\d+意味着这个类别需要是一个数字。您可以根据需要搜索如何定义不同类型的模式。
请注意,使用GET将数据发送到,与呈现当前正在访问的页面的相同的视图函数,而使用不同的url意味着告诉它在哪里通过urls.py (通常是不同的函数)。这会让事情变得更清楚吗?
https://stackoverflow.com/questions/19209745
复制相似问题