代码改变世界

110-使用正则匹配的方式从url获值

2019-08-23 22:04  lzhshn  阅读(248)  评论(0编辑  收藏  举报

正则匹配的方式就是在url里按照规则来写参数,中间用/分开,每两个/中间为一个参数;

并且,正则匹配的方式还规定了参数的类型,在views函数中,不必进行转化,直接使用即可。

 

1、假设url写法如下:

from django.urls import path
from . import views

urlpatterns = [
    # 正式匹配的url
    path('test_regular/<int:a>/<int:b>/', views.test_regular, name='test_regular'),
]

 可以看见,在url部分,已经严格规定了参数的形式和类型。为了方便书写url,views函数可以先写一个大概,比如是:

# 使用正则匹配获得值
def test_regular(request, a, b):
    pass

这样,在配置path时,用views即可点出对应的函数,不用我们完整敲出函数名。

 

2、对应的views函数

# 使用正则匹配获得值
def test_regular(request, a, b):
    return HttpResponse('从url获得两个值,a为%d,b为%d,它们的和是%d' % (a, b, a+b))

 由于url里定义了两个参数,直接把这两个参数引进来即可,函数知道它们默认都是int型,可以对a和b进行处理;

当我们使用/1/2/这样的写法时,即默认a=1,b=2;

假设有url如下:http://127.0.0.1:8000/test_app/test_regular/1/2/

将得到返回:

从url获得两个值,a为1,b为2,它们的和是3