bottle框架学习(三)获取GET,POST请求的参数

GET参数提供方法

在url连接最后添加”?名称=值&名称=值……”

  • 在浏览器url地址栏手工输入

  • 也可以通过超链接提供

  • 在网页中通过表单的形式提供

获取GET参数

request.query.name
参数名name不存在时,则返回空字符串


from bottle import route,run,request

htmlstr = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>bottle</title>
</head>
<body>
    <form action="/get" method="get">
        label>姓名:</label>
        <input type="text" name = "name"/>
        <label>手机号:</label>
        <input type="text" name = "telephone"/>
        <label>邮箱:</label>
        <input type="text" name = "email"/>
        <input type="submit" />
    </form>
</body>
</html>
"""


@route('/')
def index():
    return htmlstr

@route('/get')
def getpara():
    name = request.query.name
    telephone = request.query.telephone
    email = request.query.email
    return '姓名:%s 手机号:%s 邮箱:%s'%(name,telephone,email)

run(host='localhost',port=80,debug=True,reloader=True)

这里写图片描述
点击“提交查询”
这里写图片描述

POST参数提供方法

  • 在< form>标签中加入method=‘post’属性

获取POST参数

  • request.form.get(‘name’)
    参数名name不存在时,则返回空字符串

from bottle import route,run,request,post

htmlstr = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>bottle</title>
</head>
<body>
    <form action="/post" method="post">
        <label>姓名:</label>
        <input type="text" name = "name"/>
        <label>手机号:</label>
        <input type="text" name = "telephone"/>
        <label>邮箱:</label>
        <input type="text" name = "email"/>
        <input type="submit" />
    </form>
</body>
</html>
"""


@route('/')#也可以使用@get('/')默认是GET方法
def index():
    return htmlstr

@route('/get')
def getpara():
    name = request.query.name
    telephone = request.query.telephone
    email = request.query.email
    return '姓名:%s 手机号:%s 邮箱:%s'%(name,telephone,email)

@post('/post') ##或者@route('/post',method='POST'),POST方法要指定
def post():
    name = request.forms.get('name')
    telephone =request.forms.get('telephone')
    email =request.forms.get('email')
    return "<p>姓名:%s <br/> 手机号:%s  <br/> 邮箱:%s </p>" %(name,telephone,email)


run(host='localhost',port=80,debug=True,reloader=True)

这里写图片描述

  • request.POST.decode(‘utf-8’)
  • request.POST.get(‘name’)
    重写上面的post业务函数

@post('/post') ##或者@route('/post',method='POST'),POST方法要指定
def post():
    #第一种方法
    # name = request.forms.get('name')
    # telephone =request.forms.get('telephone')
    # email =request.forms.get('email')
    #第二种方法
    request.POST.decode('utf-8')
    name = request.POST.get('name')
    telephone = request.POST.get('telephone')
    email = request.POST.get('email')
    return "<p>姓名:%s <br/> 手机号:%s  <br/> 邮箱:%s </p>" %(name,telephone,email)

得到相同的结果

猜你喜欢

转载自blog.csdn.net/sunchengquan/article/details/79553369