django-url的分发
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/函数里面的所有代码都会执行,
并且路径也会改变,
用户再次刷新的时候不会改变