码迷,mamicode.com
首页 > 其他好文 > 详细

路由的使用

时间:2019-01-11 20:12:44      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:表达式   新建   ext   als   不用   定向   基本使用   不同   默认   

1 路由的基本使用:
 url是个函数,有四个参数,第一个参数要传正则表达式,第二参数传函数内存地址,第三个参数传默认参数,第四个是路由的别名
url(r‘^article/aa.html$‘, views.test),
-路由从上往下匹配,一旦匹配成功,后面就不继续匹配了

2 路由的无名分组
url(r‘^test2/(\d+)/(\w+)$‘, views.test2),
无名分组分出几个值,视图函数就要接受几个值(位置参数形式传过来的)

3 路由的有名分组
url(r‘^test3/(?P<id>\d+)/(?P<name>\w+)$‘, views.test3),
有名分组分出几个值,视图函数就要接受几个值(按关键字传入,位置可以打乱)

        有名和无名不能混着用

4 在settings中配置(以后项目,一般不用动)
# 默认是true,浏览器浏览的时候,默认加上斜杠
# 如果是False,浏览器默认不会加/
# APPEND_SLASH=False

5 路由分发
1 导入include
-from django.conf.urls import include
2 在主路由中:
url(r‘^app01/‘, include(‘app01.urls‘)),
url(r‘^app02/‘, include(‘app02.urls‘)),
3 在不同app中新建一个urls
from app01 import views
urlpatterns = [
url(r‘^test/‘, views.test),
]
4 如果浏览器输入app01/test/,就会响应到app01下views中的test取执行

6 反向解析:
干什么用?
-在视图函数中重定向的地址原来是写死的,如果url地址变更,我需要所有的url都修改,很麻烦,所有可以通过反向解析,获得url的地址
如何使用:
-路由层:
url(r‘^test_2/$‘, views.test2,name=‘test2‘),
-视图层:
from django.shortcuts import reverse
url=reverse(‘url地址的别名‘)
#如果做了分组
url=reverse(‘url地址的别名‘,args=[],kwargs={})
-模板层:
{% url ‘url地址的别名‘%}
#如果做了分组
{% url ‘url地址的别名‘ 参数1 参数2%}

 

7 django 2.0的path,re_path
-1.几的url就是2.几的re_path
-2.0的path 第一个参数不再是正则表达式
-5个转换器:int,str,slug,path,uuid

路由的使用

标签:表达式   新建   ext   als   不用   定向   基本使用   不同   默认   

原文地址:https://www.cnblogs.com/zhanggq/p/10256682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!