Django之路由层

一、前言

二、基础的路由配置

三、有名分组

四、分发

五、反向解析

六、名称空间

 

一、前言

  路由层即 URL配置( URLconf ),是Django所支撑的网站的目录。它的本质是URL与该URL调用的视图函数之间的映射关系,用户输入(客户端)需要访问的网页url,然后它(URL控制器)告诉Django,调用对应的逻辑代码对应执行。

 

二、基础的路由配置

 url控制器

from django.urls import path,re_path
from app1 import views

urlpatterns = [
    re_path(r'^artices/2018/$',views.paper_2018), # '^'匹配开头,‘$’匹配u末尾 views.paper_2018(request)
    re_path(r'^artices/([0-9]{4})/$',views.paper_2018), # [0-9]{4}表示0到9之间的数反复出现4次 views.paper_2018(request,year)
    re_path(r'^artices/([0-9]{4})/([0-9]{2})/$',views.paper_2018), # [0-9]{2}表示0到9之间的数反复出现2次 views.paper_2018(request,year,month)
    re_path(r'^artices/([0-9]{4})/([0-9]{2})/([0-9]+)$',views.paper_2018), # [0-9]+ 表示0到9之间的数出现1次以上 views.paper_2018(request,year,month,day)

]

  views视图

from django.shortcuts import render,HttpResponse

def paper_2018(request):

    return HttpResponse('Hello world,this is my first paper in 2018!')


def paper_2018(request,year):

    return HttpResponse('Hello world,this is my first paper in %s!'%year)


def paper_2018(request,year,month):

    return HttpResponse('Hello world,this is my first paper in %s-%s!'%(year,month))


def paper_2018(request,year,month,day):

    return HttpResponse('Hello world,this is my first paper in %s-%s-%s!'%(year,month,day))

  注意: 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。 每个正则表达式前面的'r' 是可选的但是建议加上。它告诉Python 这个字符串是“原始的” —— 字符串中任何字符都不应该转义。

   未完,待续...

posted @ 2019-07-09 00:20  暮光微凉  阅读(177)  评论(0编辑  收藏  举报