django框架GET属性接受一键一值、一键多值

日期:2018-06-29 21:11:13 章节:  django开发流程及原理

GET属性,接受由客户端(浏览器)发起Http GET请求,接受请求携带过来的参数。

GET接受一键一值的形式:    localhost:8080/booktest/getOne/?a=www.isoftvip.com&b=soft

GET接受一键多值的形式:    localhost:8080/booktest.getMore/a=www.isoftvip.com&a=soft


1、定义视图getDemo和相应模板

def getdemo(request):

    return render(request,'booktest/getdemo.html')

getDemo.html模板

<body>

<h2>GET获取值方式总结</h2>

<ul>

    <li><a href="/booktest/getOne/?a=soft教程网">GET获取:一键一值</a></li>

    <li><a href="/booktest/getMore/?a=soft教程网&a=www.isoftvip.com">

        GET获取:一键多值</a></li>

</ul>

</body>

GET列表.png

<body>
<h2>GET获取值方式总结</h2>
<ul>
    <li><a href="/booktest/getOne/?a=soft教程网&b=isoftvip_com">
    GET获取:一键一值</a></li>
    <li>
    <a href="/booktest/getMore/?a=soft教程网&amp;a=www.isoftvip.com">
        GET获取:一键多值</a>
    </li>
    <li><a 
    href="/booktest/getMoreName/?a=soft教程网&amp;a=www.isoftvip.com">
    GET获取:一键多值(正确用法)</a>
    </li>
</ul>
</body>

2、GET接受一键一值的形式:getOne视图

def getOne(request):

    a=request.GET['a']

    b=request.GET['b']

    context={'a':a,'b':b}

    return render(request,'booktest/getOne.html',context)

绑定模板getOne.html

<body>

<h2>GET获取单个值如下:</h2>

<h3>a的值为:{{a}}</h3>

<h3>b的值为:{{b}}</h3>

</body>

结果如下:

GET获取一键一值.png

2、GET接受一键多值

如果还是使用GET获取,只能获取到最后的参数值

def getMore(request):

    a=request.GET['a']

    b=request.GET.get('a')

    context={'a':a,'b':b}

    return render(request,'booktest/getMore.html',context)

结果如下:

GET一键多值HttpRequest对象.png

获取一键多值应该使用request.GET.getlist('键名'),返回一个列表

def getMoreName(request):

    a=request.GET.getlist('a')

    return render(request,

    'booktest/getMoreName.html',{'a':a})

对应模板,对列表进行遍历。

<body>

<h2>GET获取一键多值getlist()</h2>

<ul>

    {% for item in a %}

        <li>{{item}}</li>

    {% endfor %}

</ul>

</body>

正确结果如下图所示:

GET获取一键多值正确做法.png

微信底部.png