正则表达式Url conf Django
我正在尝试进行以下设置正则表达式Url conf Django,django,Django,我正在尝试进行以下设置 Flatpages:我的所有静态站点所在的位置(如:关于、联系等) 动态页面: 在这里,我尝试从一个Flatpages链接到一个起始站点: 我尝试的这个startsite的url配置中的正则表达式是: (r'^myapp/start/(\d+)/$', 'mysite.views.def_that_should_just_show_hello_world'), 在我的意见中: def def_that_should_just_show_hello_world(reque
(r'^myapp/start/(\d+)/$', 'mysite.views.def_that_should_just_show_hello_world'),
在我的意见中:
def def_that_should_just_show_hello_world(request):
return HttpResponse("Hello experiment world")
如果我去
/myapp/I get 404:没有与给定查询匹配的FlatPage。
/myapp/start/I get 404:没有与给定查询匹配的FlatPage。
/myapp/start/1我得到
异常类型:TypeError
def_that_show_hello_world正好取1个参数(给定2个)
我想通过这个设置,我会在每一页上看到“Hello Experience world”
我哪里出错了?
我不理解Regex中的多站点方法。
要在所有这些网站上打印hello world,我需要做什么?
然后,我要怎么做才能在所有这些网站上显示一张图片
非常感谢你的帮助 正则表达式中有一个匹配组—
(\d+)
位
这需要在该视图的url末尾显示一个或多个数字字符。如果未在末尾包含数字,则此正则表达式将与url不匹配。(url匹配与任何其他正则表达式匹配一样有效)
如果您确实包含了该号码,例如,/myapp/start/1
,则会出现另一个问题。因为存在匹配的组,所以括号中的url部分将作为另一个参数传递给视图。视图总是将请求作为第一个参数传递,但在本例中,由(\d+)
匹配的“1”作为第二个参数提供。这就是为什么在这种情况下,您会出现TypeError
Django的文档有一个s,请通读一遍,看看这是否有意义 谢谢!对不起,我不明白。特别是您写道:“因为有一个匹配的组,所以括号中的url部分(您的意思是:(\d+)将作为另一个参数传递给您的视图。”我该怎么做才能使它传递正确的参数(第一个、第二个)?如果您向视图函数添加另一个参数(或添加*args以捕获任意数量的参数)然后,该视图将匹配url
/myapp/start/1
。将其签名设置为def\u,即\u应该显示\u hello\u world(请求,编号):
。这允许视图匹配表单/myapp/start/的URL,这意味着将使用请求对象和传递给它的编号调用它。我不清楚你的最终目标是什么-也许你可以尝试澄清一下?所以我的最终目标是拥有多个网站,例如myapp/start/1-40。每个网站应该有一个图像或一个声音或一部电影。这些应该存储在一个列表中,然后在一页(1-40)上显示其中的每一个,并使用“下一步”按钮(就像图库一样)。“下一步”按钮必须记录单击时的时间戳。就这样。在我看来,这似乎是一些基本的标准做法,但每次我解决一个问题,就会出现另一个问题。。谢谢您的时间。我必须使用正则表达式来执行URL.py吗?这个答案还应该解释op如何使用这个代码,需要更改什么,为什么要更改,等等。
from your_app_name import views
from django.conf.urls import url
urlpatterns = [
url(r'^$',views.method_name,name ='index'),
path('admin/', admin.site.urls),