django-url的分发, 2)起别名, 3)根目录,4)rediect跳转函数:

时间:2022-10-07 04:38:30

1)url的分发:

1,首先在全局的url里面的路径中写好,你要分发的路径名.

2,并且在你要分发的路径下,创好新的url文件.
在分发的路径名里面,把全局url里面的代码,复制过来

3,最后在浏览器打开的时候,命令前面要加上你分发路径全部名称.

例:原路径
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^article/(\d{4}/\d{2}$)', views.article), #匹配括号里面的
url(r'^article/(?P<year>\d{4})/(?P<days>\d{2})$', views.article), #匹配括号里面的
url(r'^app01/',include('app01.urls'))
]

新路径:
urlpatterns = [
url(r'^admin/', admin.site.urls),
# url(r'^article/(\d{4}/\d{2}$)', views.article), #匹配括号里面的
# url(r'^article/(?P<year>\d{4})/(?P<days>\d{2})$', views.article), #匹配括号里面的
url(r'^login/', views.login),
]

在里面

 2)起别名

1,在url里面的,后面加上name属性

2,然后在html页面内,{% url '别名'%}

例:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^loginsdsd/', views.login,name='log'),
]

在html里面用别名代替前面的名称

 3)根目录

顾名思义,就是不需要后面加上任何路径就直接访问urls后面路径的数据.

根目录用$,表示

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.login,name='log'),
url(r'^$', admin.site.urls),

]

最后一个url就是表示根目录,在你用浏览器访问页面的时候,可以直接用
127.0.0.1:8000访问,后面不需要加任何路径.

 

4)rediect跳转函数:

return render(request,'login.html')和return rediect('/login.html/')之间的差别


return render(request,'login.html')只是跳到login.html这个页面上去,没有别的任何操作,和url里的调用都不执行,
并且路径还是原来的路径,
当用户再次刷新时,会会重新回到原来路径下的页面.


return rediect('/login.html/')
执行的的是url里面的函数,相当于又一次调用新的函数,/login.html/函数里面的所有代码都会执行,
并且路径也会改变,
用户再次刷新的时候不会改变