쿼리 문자열을 얻는 방법에 대한 플라스크 문서에서 명확하지 않습니다. 나는 새로운, 문서를보고 찾을 수 없습니다!
그래서
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
답변
from flask import request
@app.route('/data')
def data():
# here we want to get the value of user (i.e. ?user=some-value)
user = request.args.get('user')
답변
전체 URL은으로 사용 가능 request.url
하고 쿼리 문자열은으로 사용 가능합니다 request.query_string
.
예를 들면 다음과 같습니다.
from flask import request
@app.route('/adhoc_test/')
def adhoc_test():
return request.query_string
쿼리 문자열에 전달 된 개별 알려진 매개 변수에 액세스하려면을 사용할 수 있습니다 request.args.get('param')
. 이것은 내가 아는 한 “올바른”방법입니다.
ETA : 계속 진행하기 전에 왜 쿼리 문자열을 원하는지 스스로에게 물어봐야합니다. 나는 원시 문자열을 끌어 들일 필요가 없었습니다.-Flask에는 추상적 인 방식으로 액세스 할 수있는 메커니즘이 있습니다. 설득력없는 이유가없는 한 사용하십시오.
답변
Werkzeug / Flask는 이미 모든 것을 파싱했습니다. urlparse를 사용하여 동일한 작업을 다시 수행 할 필요가 없습니다.
from flask import request
@app.route('/')
@app.route('/data')
def data():
query_string = request.query_string ## There is it
return render_template("data.html")
요청 및 응답 오브젝트에 대한 전체 문서는 Werkzeug에 있습니다. http://werkzeug.pocoo.org/docs/wrappers/
답변
request.query_string을 사용하여이를 수행 할 수 있습니다.
예:
view.py를 고려하자
from my_script import get_url_params
@app.route('/web_url/', methods=('get', 'post'))
def get_url_params_index():
return Response(get_url_params())
또한 Flask Blueprints- http: //flask.pocoo.org/docs/0.10/blueprints/를 사용하여 더 모듈화 할 수 있습니다.
쿼리 문자열 / web_url /? first_name = john의 일부로 이름이 전달되는 것을 고려할 수 있습니다.
## here is my_script.py
## import required flask packages
from flask import request
def get_url_params():
## you might further need to format the URL params through escape.
firstName = request.args.get('first_name')
return firstName
보시다시피 이것은 작은 예일뿐입니다. 여러 값을 가져 와서 형식을 지정하여 사용하거나 템플릿 파일로 전달할 수 있습니다.
답변
쿼리 문자열에서 값을 얻는 방법이 아니라 쿼리 문자열을 찾으러 왔습니다.
request.query_string
URL 매개 변수를 원시 바이트 문자열 (Ref 1)로 리턴합니다.
사용 예 request.query_string
:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['GET'])
def get_query_string():
return request.query_string
if __name__ == '__main__':
app.run(debug=True)
산출:
참고 문헌 :
답변
쿼리 문자열에 대해 다음과 같이 시도하십시오.
from flask import Flask, request
app = Flask(__name__)
@app.route('/parameters', methods=['GET'])
def query_strings():
args1 = request.args['args1']
args2 = request.args['args2']
args3 = request.args['args3']
return '''<h1>The Query String are...{}:{}:{}</h1>''' .format(args1,args2,args3)
if __name__ == '__main__':
app.run(debug=True)
답변
O’Reilly Flask Web Devleopment에 설명 된대로 플라스크 요청 객체에서 검색 가능한 모든 형식의 쿼리 문자열 :
에서 오라일리 플라스크 웹 개발 이전 만안 Gouhari에 의해 진술하고, 먼저 가져 오기 요청해야합니다
from flask import request
request
Flask에 의해 명명 된 컨텍스트 변수 (추측 치)로 노출 된 객체 request
입니다. 이름에서 알 수 있듯이 클라이언트가 HTTP 요청에 포함시킨 모든 정보를 포함합니다. 이 객체에는 각각 검색하고 호출 할 수있는 많은 속성과 메서드가 있습니다.
request
선택할 쿼리 문자열을 포함하는 속성 이 꽤 있습니다. 여기에서는 쿼리 문자열을 포함하는 모든 속성과 해당 속성의 O’Reilly 책의 설명을 나열합니다.
먼저 args
“URL의 쿼리 문자열에 모든 인수가 전달 된 사전”이 있습니다. 따라서 쿼리 문자열을 사전으로 구문 분석하려면 다음과 같이하십시오.
from flask import request
@app.route('/'):
queryStringDict = request.args
(다른 사람들이 지적했듯이 .get('<arg_name>')
사전에서 특정 값을 얻는 데 사용할 수도 있습니다 )
그런 다음 쿼리 문자열을 포함 form
하지 않지만 잠시 나열 할 쿼리 문자열을 포함하는 다른 속성의 일부에 포함되는 속성 이 있습니다. 그러나 먼저 form
“요청과 함께 제출 된 모든 양식 필드가있는 사전”입니다. 플라스크 요청 객체에서 사용할 수있는 또 다른 사전 속성이 있습니다 values
. values
” form
및 의 값을 결합하는 사전입니다 args
.” 이를 검색하면 다음과 같이 보일 것입니다.
from flask import request
@app.route('/'):
formFieldsAndQueryStringDict = request.values
(다시, .get('<arg_name>')
사전에서 특정 항목을 가져 오기 위해 사용 하십시오)
또 다른 옵션은 query_string
“원시 이진 값으로 URL의 쿼리 문자열 부분”입니다. 그 예 :
from flask import request
@app.route('/'):
queryStringRaw = request.query_string
그런 다음 추가 보너스 full_path
로 “URL의 경로 및 쿼리 문자열 부분”이 있습니다. ejemplo에게 :
from flask import request
@app.route('/'):
pathWithQueryString = request.full_path
마지막으로 url
“클라이언트가 요청한 전체 URL”(쿼리 문자열 포함) :
from flask import request
@app.route('/'):
pathWithQueryString = request.url
행복한 해킹 🙂