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

来源:互联网 发布:手机淘宝账号注册流程 编辑:程序博客网 时间:2024/06/03 10:37

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

from bottle import Bottle,run,request,templateapp=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里的数据,这里列举如下;
这里写图片描述

原创粉丝点击