Regex django 1.7如何将参数传递给函数正则表达式
我试图将表的ID传递给我的函数,但我不确定发生了什么。 如果我硬编码ID号,如果我将(?Pd+)与d+一起使用,那么它将使用与教程中一样多的数字。不起作用。这应该有所不同吗 谢谢各位 我的网址Regex django 1.7如何将参数传递给函数正则表达式,regex,django,views,Regex,Django,Views,我试图将表的ID传递给我的函数,但我不确定发生了什么。 如果我硬编码ID号,如果我将(?Pd+)与d+一起使用,那么它将使用与教程中一样多的数字。不起作用。这应该有所不同吗 谢谢各位 我的网址 from django.conf.urls import patterns, include, url from polls import views urlpatterns = patterns('', #url(r'^main_site/$', views.main_site),
from django.conf.urls import patterns, include, url
from polls import views
urlpatterns = patterns('',
#url(r'^main_site/$', views.main_site),
url(r'^vote/$', views.vote),
url(r'^stadistics/$', views.stadistics),
# using it like this doesn't work
url(r'^vote/Restaurant_Info/(?P<rest_id>d+)/$', views.restaurant_menu),
#testing the info of the restaurant
# hard coding the id of the restaurant does work
url(r'^vote/Restaurant_Info/4/$', views.restaurant_menu),
从django.conf.url导入模式,包括,url
从轮询导入视图
urlpatterns=模式(“”,
#url(r“^main\u site/$”,views.main\u site),
url(r'^vote/$,views.vote),
url(r“^statistics/$”,views.statistics),
#像这样使用它是行不通的
url(r“^vote/Restaurant\u Info/(?Pd+)/$”,视图。Restaurant\u菜单),
#测试餐厅的信息
#硬编码餐厅的id确实有效
url(r“^vote/Restaurant\u Info/4/$”,视图。Restaurant\u菜单),
我的看法
def restaurant_menu(request, rest_id="0"):
response = HttpResponse()
try:
p = Restaurant.objects.get(id=rest_id)
response.write("<html><body>")
response.write("<p>name of the restaurant</p>")
response.write(p.name)
response.write("</body></html>")
except Restaurant.DoesNotExist:
response.write("restaurant not found")
return response
def餐厅菜单(请求,rest\u id=“0”):
response=HttpResponse()
尝试:
p=Restaurant.objects.get(id=rest\u id)
回答。写(“”)
回答。写上(“餐厅的名称”)
响应。写入(p.name)
回答。写(“”)
餐厅除外。无纺织商:
回答。写下(“未找到餐厅”)
返回响应
您缺少一个斜杠。它应该是(?p\d+)
您的表达式缺少一个反斜杠,当前d+
与字符d
按字面意思“一次或多次”匹配。反斜杠与文字字符组合可创建具有特殊含义的正则表达式标记
因此,\d+
将数字0
匹配到9
“一次或多次”
url(r'^vote/Restaurant\u Info/(?P\d+)/$,视图。Restaurant\u菜单)
url(r“^vote/Restaurant\u Info/(?P\d+)/$”,视图。Restaurant\u菜单),
谢谢你的解释,我认为我是django,但我应该研究RE,它对字符串的工作方式是否相同?比如url(r'^/vote/Threak/(?P\w+/$),views.Threak),是的。这里有一个很好的参考
url(r'^vote/Restaurant_Info/(?P<rest_id>\d+)/$', views.restaurant_menu)
url(r"^vote/Restaurant_Info/(?P<rest_id>\d+)/$", views.restaurant_menu),