使用bottle进行web开发:get的参数传递,form数据传递等

本文介绍了如何在Bottle框架中处理URL中的GET和POST请求参数。通过实例展示了如何使用request.query和request.forms来获取参数值,并实现了简单的登录功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.诸如:forum?id=1&page=5以及使用get方法这样的,在bottle里,可以通过request.query来访问这些值,举例如下;

from bottle import Bottle,run,request,template

app=Bottle()

@app.route('/forum')
def display_forum():
    formid=request.query.id
    pageid=request.query.page or '1'
    return template('Forum ID:{{id}} (page {{pageid}})',id=formid,pageid=pageid)

run(app,host='127.0.0.1',port='3333')

这里,bottle内部关键的一点,是使用了FormsDict类。

2.html的处理:

假设,在html文件里,有这么一个东西:

<form action="/login" method="post">
    Username:<input name="username" type="text"/>
    Password:<input name="password" type="password"/>
    <input value="Login" type="submit"/>
</form>

这里的action,指出通过url从form data中获得数据的过程,可以使用http的get或者post。

如果是get,则这些值就显性的在url里出现,并且可以通过上面的例子里的BaseRequest.query来获取。

这里,我们采用post方式。这个时候,数据就存在BaseRequest.forms中(参考FormsDict)

具体代码如下:

@app.route('/login')
def login():
    return '''<form action="/login" method="post">
    Username:<input name="username" type="text"/>
    Password:<input name="password" type="password"/>
    <input value="Login" type="submit"/>
</form>'''

@app.route('/login',method='POST')
def do_login():
    username=request.forms.get('username')
    password=request.forms.get('password')
    return template("<p>login name is :{{username}} and password is :{{password}}</p>",username=username,password=password)

run(app,host='127.0.0.1',port='3333')

还有其他的方式来或许form里的数据,这里列举如下;
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值