2013-10-07 26 views
0

我是Bottle的新手。我編寫的應用程序有以下途徑:Bottle GET儘管路由拋出404錯誤

@route('/search?<querystring>') 

然而,一個GET請求URL

http://0.0.0.0:5000/search?query=test 

拋出一個404錯誤。這可能與URL中的問號有關,但我無法弄清楚如何解決這個問題。使查詢字符串變量更大以包含問號不起作用,因爲它似乎只能捕捉到問號前的字符。有誰知道如何解決這個問題?

謝謝!

回答

3

查詢字符串不是路由的一部分。該路由僅爲/search,查詢字符串可從request.query訪問。

1

瓶子的路線將只匹配URI 路徑。我想你想要的是沿着這些線路的東西更多:

from bottle import request 

@route('/search') 
def search(): 
    query = request.params.get('query') 
    # foo = request.params.get('foo') # and so on 
    return 'Your query value was: {}'.format(query) 

(如@DanielRoseman正確地指出的那樣,你可以使用request.query代替request.params,但我通常使用後者。)