我正在尝试进行以下设置。
Flatpages:我的所有静态网站都在哪里(例如:about,contact,..)
动态页面:
在这里,我尝试从其中一个Flatpages链接到一个起始站点:
我试过的这个起始网站的url conf中的正则表达式是:
(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 /我得到404:没有FlatPage匹配给定的查询。 / myapp / start /我得到404:没有FlatPage匹配给定的查询。 / myapp / start / 1我得到
异常类型:TypeError def_that_should_just_show_hello_world只需1个参数(给定2个)
我想在这个设置中,我会在每个页面上得到“Hello experiment world”。
我哪里出错了? 我不理解正则表达式中的多个站点方法。 在所有这些网站上打印hello world我需要做什么? 然后,我需要做什么才能在所有这些网站上显示1张图片?
非常感谢您的帮助!
答案 0 :(得分:1)
正则表达式中有一个匹配的组 - (\d+)
位。
这需要在该视图的网址末尾显示一个或多个数字字符。如果您未在末尾包含该数字,则此正则表达式将与该网址不匹配。 (url匹配与任何其他正则表达式匹配一样)。
当您确实包含该号码时,例如。 /myapp/start/1
你有另一个问题。由于存在匹配组,括号中url的部分将作为另一个参数传递给视图。视图始终作为第一个参数传递请求,但在这种情况下,(\d+)
匹配的“1”作为第二个参数提供。这就是为什么你要在这种情况下使用TypeError。
Django的文档有一个lot of information on how url dispatching work,读过来看看是否有意义!
答案 1 :(得分:0)
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),