美文网首页
Django的参数传递问题

Django的参数传递问题

作者: 想旅游的程序员 | 来源:发表于2018-10-08 10:35 被阅读0次

    简书啥时候支持创建目录啊???

    [TOC]

    Django的参数传递问题

    1. 传统的传参方式url?name=value&id=XXX
    • get请求
      • request.GET['name']
      • request.GET.get('id',None)
      • request.GET.getlist('fav')

    • POST请求
      • request.POST['name']
      • request.POST.get('id',None)
      • request.POST.getlist('fav')

    传统的传参方式

    • 判断request请求的类型request.method == 'GET'或者request.method == 'PosT'
    • 若请求为GET,获取每个属性的值request.GET.get("属性名称")或者request.POST.get("属性名称")
      • 注:一定要在form表单中的每个input里面添加name值,不然无法获取属性值
    • 如果修改数据,需要进行保存

    RESTFUL传递参数

    通过将参数包含在URL地址中作为地址的一部分出现,在一定程度上都能有非常好的参数混淆的作用,对于网站安全性的提升是非常友好的一种操作
    Django也实现了RESTFUL风格发送参数是将参数包含在url地址中,所以参数的接收定义就会在路由中进行配置,参数的配置接收主要有两种方式

    位置参数和关键字参数

    在url.py中配置

    #利用正则的分组,第一个括号表示第一个参数
    url(r"^(\w+)/param1$",views.param1,name="param1),
    #使用命名参数(关键字参数)
    url(r"^(?P<username>\d+)/param2$",views.param2,name="param2"),
    

    视图函数views.py

    # url(r"^(\w+)/param1",views.param1,name="param1"),
    # 第一个参数就是正则分组的参数
    def param1(request,name): 
        print("前端传输的 name:", name) 
        return HttpResponse("这个是使用位置参数方式")
    
    # 这个是使用命名参数
    #url(r"^(?P<username>\d+)/param2",views.param2,name="param2")
    def param2(request,username) 
            print("前端传输的 username:", username)        
            return HttpResponse("这个是使用命名参数方式")
    

    相关文章

      网友评论

          本文标题:Django的参数传递问题

          本文链接:https://www.haomeiwen.com/subject/cgzhaftx.html