路由层的配置,路由层在于
后面的具体函数,
首先在主程序当中的urls中引入这些报,第一个和第二个都是django的内置方法,re_path是正则表达式中的用法,匹配正则匹配到的信息出来。
这这几个匹配之后就是在网页中输入如articles/2003/就能找到相应的页面,然后定位到views的special_case_2003方法
然后找到app2的视图views文件当中
这时候,在网页当中输入http://127.0.0.1:8000/articles/2003/就能找到相应的信息。在HttpResponse中返回,一般要加上字符串才行。
然后你会发现好像一个个数字匹配太麻烦,这里就需要引入正则表达式,
re_path(r'^articles/([0-9]{4})/$',views.year_archive),
这里表达式返回的信息就是year_archive(request,str) 这里的str就是返回的字符串信息。
同样也是在views的文件里面加入一个方法
这里做的就是返回你输入的url信息在页面当中。
显示结果如下:
然后返回的信息过多的话,很容易出现问题,就需要给收到的信息今天命名才行。
分发
我们看到app2中也有一个urls.py文件,所以我们其实可以将关于app2应用的方法全部归类于urls当中,主要程序只需要在主程序中加一个转向的方法将所有的内容归类到相应的app当中m,,做到分发的功能,就像是在一个主要的方法当中分流走向其他的方法。
re_path(r'^app2/',include('app2.urls')), #或者匹配app2/也可以,将所有在app2中的内容全部放到app2的分发里面去;。
表达的意思是当你在搜索浏览器的时候,先输入app2的方法直接转到app2的urls去,所以情况就是在输入urls的时候只要加上app2就可以实现相应的功能,并且在代码有很好的阅读效果。
这是第一种方法,后面还有一种在空间视图当中起别名的方法。
from django.urls import reverse
由于你使用多个app可能导致部分的app调用出现覆盖的问题,需要给每个方法进行重新命名才可以,所以要加上代码
from django.urls import include
re_path(r'^app2/',include('app2.urls',namespace="z2")), #这是错误的方法
re_path(r'^app2/',include(('app2.urls','z2'))), #正确的方法是在include后面打上括号第一个是你所引用的方法,第二个是别名。