Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式Url conf Django_Django - Fatal编程技术网

正则表达式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

我正在尝试进行以下设置

  • 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(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),