📜  烧瓶多个参数 - Python (1)

📅  最后修改于: 2023-12-03 15:27:04.767000             🧑  作者: Mango

烧瓶多个参数 - Python

在Python的Web框架Flask中,我们经常需要从前端接收多个参数。而烧瓶(Bottle)也是一个类似Flask的Web框架,提供了多个参数的处理方式。

处理GET请求的多个参数

当我们从前端以GET方式提交多个参数时,可以通过烧瓶的query_string来接收参数,如下所示:

from bottle import Bottle, request

app = Bottle()

@app.route('/')
def index():
    name = request.query.name
    age = request.query.age
    return f"Hello, {name}! You are {age} years old."


if __name__ == '__main__':
    app.run()

在访问http://localhost:8000/?name=Goblin&age=24时,会输出:

Hello, Goblin! You are 24 years old.
处理POST请求的多个参数

当我们从前端以POST方式提交多个参数时,可以通过烧瓶的forms来接收参数,如下所示:

from bottle import Bottle, request

app = Bottle()

@app.route('/', method='POST')
def index():
    name = request.forms.get('name')
    age = request.forms.get('age')
    return f"Hello, {name}! You are {age} years old."


if __name__ == '__main__':
    app.run()

在用curl模拟POST请求,如下所示:

curl -XPOST http://localhost:8000 -d'name=Goblin' -d'age=24'

会输出:

Hello, Goblin! You are 24 years old.
处理POST请求的JSON格式数据

有时候我们会从前端以POST方式提交JSON格式的数据,可以通过烧瓶的json来接收JSON格式数据,如下所示:

from bottle import Bottle, request

app = Bottle()

@app.route('/', method='POST')
def index():
    data = request.json
    name = data.get('name')
    age = data.get('age')
    return f"Hello, {name}! You are {age} years old."


if __name__ == '__main__':
    app.run()

在用curl模拟POST请求,如下所示:

curl -XPOST http://localhost:8000 -H 'Content-Type: application/json' -d'{"name": "Goblin", "age": 24}'

会输出:

Hello, Goblin! You are 24 years old.

通过以上方式,我们可以方便地处理烧瓶中的多个参数,从而更好地完成Web开发任务。