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、默认值和命令空间

  

原文地址:https://www.cnblogs.com/chenxiaozan/p/13059774.html