DJANGO get传参获取的方法总结说明

get传参

一般来说有两种方式:

  1. ?page=1

    这是web中常用的传参方式,在这种传参中page是key,而1为key对应的value,就是键值对传参。get请求构造时,直接将参数以键值对放在data里,然后就会将data中的参数以这样的形似组合起来,如data中,定义了两个参数page以及user:

     ?page=1&user=1
    
  2. page/1

django获得get的参数

传统的获取键值对的方法

在django针对第一种,我们直接通过字典的get的方法来获得,即request.GET[‘page’]来获得,这时候路由的配置以及view的书写跟get中不含参数是一样的,例:

path(r'page/',views.TestView.as_view())

当我们要测试某一参数有没有给,并返回不存在时的默认值,可以用request.GET.get(‘page’,’’)

从这里可以看出来了request.GET保存的就是get请求中带有的数据的字典

正则方法

  • 获得page/1这样的参数

      path(r'page/<index>', views.TestView.as_view()),
    
      def get(self, request, *args, **kwargs):
    
      	print({'args':args, 'kwargs':kwargs})
    

会得到{‘args’: (), ‘kwargs’: {‘index’: ‘1’}}这样的参数

注意index在这里是形参的意思

  • 正则获取

    django2.0以后就是用path代替url,这个是没有正则功能的,要正则功能则要用re_path,

    page/1用如下的路径匹配:

       re_path(r'page/(\d+)',views.TestView.as_view())
    

    简单的?page=1可以用一下的方法匹配

      re_path(r'?page=(\d+)',views.TestView.as_view())
    

但是同样的链接,这种正则获得的参数是这样的:

{'args': ('1',), 'kwargs': {}}

同样的我们在e_path中定义形参?使用这样的定义:?P:

re_path(r'page/(?P<index>\d+)',views.Show_Goods.as_view())

输出的内容如下:

{'args': (), 'kwargs': {'index': '1'}}

当使用形参时,除了我们上面定义接受不定参数的*args和**kwargs,还可以直接再request的视图中直接使用形参名,如:

def get(self,request,index):
	print(index)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值