django的路由系统urls_django
1、路由指向
(1)直接指向(不管app,直接定义)
path('business/', views.business),
使用:127.0.0.1:8000/business/
(2)app指向(多个app,进行分类定义分发)
from django.conf.urls import url,inclue
path("cmdb/",inclue("cmdb.urls"))
然后在cmdb 的app目录下生成urls.py
使用:127.0.0.1:8000/cmdb/host/
2、路由分类
(1)、一个url对应一个函数或类(静态路由)
path('apps/', views.apps), (apps是一个函数)
path('apps/',view.Apps.as_view()) (Apps是一个类)
(2)一类url对应一个函数或类(动态路由)
a、基于正则表达式匹配一批请求
path(r'^detail-(\d+).html', views.detail),
view获取:
def detail(request,nid):
print(nid)
return render(request,"detail.html",{"nid":nid})
使用:127.0.0.1:8000/detail-2.html
b、直接在映射关系中直接制定变量名:(比较严谨,推荐)
re_path(r'^detail_(?P<nid>\d+)-(?P<uid>\d+).html', views.detail),
view获取:
def detail(request,nid,uid):
print(nid)
return render(request,"detail.html",{"nid":nid,"uid":uid})
多个参数:
3、name参数
主要用途:对url路由关系进行命名,以后可以根据此名称生成自己想要的url:
4、默认值和命令空间