使用bottle進行web開發(8):get的參數傳遞,form里的額數據傳遞等


1.諸如:forum?id=1&page=5這樣的,在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的<form>處理:

假設,在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里的數據,這里列舉如下;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM