2013-10-07 4 views
0

병이 생겼습니다. 나는 다음과 같은 경로로 응용 프로그램을 작성했습니다 :병 GET은 경로가 있음에도 불구하고 404 오류를 발생시킵니다.

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

그러나, GET 요청을 URL

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

404 오류가 발생합니다. URL의 물음표와 관련이있을 수 있지만이 문제를 해결하는 방법을 알 수는 없습니다. querystring 변수를 더 크게 만들어서 물음표를 포함 시키면 물음표까지 오는 문자를 잡는 것처럼 보이기 때문에 작동하지 않습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?

감사합니다.

답변

3

쿼리 문자열은 경로의 일부가 아닙니다. 경로는 단지 /search이고 쿼리 문자열은 request.query에서 액세스 할 수 있습니다.

1

병의 경로는 경로과 일치합니다. 나는 당신이 원하는 것은 이러한 라인을 따라 뭔가 더 생각 :

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.paramsrequest.query을 사용할 수 있지만, 나는 일반적으로 후자를 사용합니다.)

관련 문제