Django---路由如何配置

具體配置在項目配置文件夾下的 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
相關文章
相關標籤/搜索