具體配置在項目配置文件夾下的 urls.py:html
from index import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), ]
index的意思就是:訪問 index 路由到 index 應用下的 index 方法:編程
上面給出的是更像是 面向函數式編程,還能夠路由到類:函數式編程
一樣是在 index應用下的view中,新建類:函數
這裏的訪問:訪問change則會路由到 viws下面的 Index類。post
這裏能夠對 get 和 post 分開處理。ui
上面就是兩種:面向函數式編程,和麪向對象式編程。二者能夠結合起來用。url
正則路由:spa
簡答示例:3d
urlpatterns = [ url(r'admin/', admin.site.urls), url(r'index/', views.index), url(r'list/', views.list), url(r'lists/', views.lists), url(r'change/',views.Index.as_view()),# 路由到類 url(r'details-(\d+).html',views.details) # 正則路由 ]
控制器:code
def lists(request): USER_INFO = { '1':'root1','2':'root2','3':'root3','4':'root4'} return render(request,'lists.html',{'user_info':USER_INFO}) def details(request,nid): if request.method == "GET": print(nid) return HttpResponse('15545')
模板:
<!-- 拿到 key 和 value --> {% for k,v in user_info.items %} <p><a href="/details-{{ k }}.html">{{ k }}----{{ v }}</a></p> {% endfor %}
這樣路由,形參的nid必須是第一個,若是傳遞多個參數:正則分組:
urlpatterns = [ url(r'admin/', admin.site.urls), url(r'index/', views.index), url(r'list/', views.list), url(r'lists/', views.lists), url(r'change/',views.Index.as_view()),# 路由到類 #url(r'details-(\d+).html',views.details), url(r'details-(?P<nid>\d+)-(?P<uid>\d+).html',views.details), ]
模板:
<!-- 拿到 key 和 value --> {% for k,v in user_info.items %} <p><a href="/details-{{ k }}-55.html">{{ k }}----{{ v }}</a></p> {% endfor %}
這樣:不管形參數的順序變化,均可以接受
def details(request,uid,nid): if request.method == "GET": print(nid) print(uid) return HttpResponse('15545')
還有一種接受方式:
def func(request,*args,**kwargs): pass