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\d{4})/(?P \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 \d{4})/(?P \d{2})$', views.article), #匹配括号里面的 url(r'^login/', views.login), ] 在里面
1,在url里面的,后面加上name属性 2,然后在html页面内,{% url '别名'%} 例: urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^loginsdsd/', views.login,name='log'), ] 在html里面用别名代替前面的名称
根目录用$,表示 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/函数里面的所有代码都会执行, 并且路径也会改变, 用户再次刷新的时候不会改变