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
相关文章
相关标签/搜索