Programming

Flask에서 쿼리 문자열을 어떻게 얻습니까?

procodes 2020. 3. 2. 13:18
반응형

Flask에서 쿼리 문자열을 어떻게 얻습니까?


쿼리 문자열을 얻는 방법에 대한 플라스크 문서에서 명확하지 않습니다. 나는 새로운, 문서를보고 찾을 수 없습니다!

그래서

@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에는 추상적 인 방식으로 액세스 할 수있는 메커니즘이 있습니다. 설득력없는 이유가없는 한 사용하십시오.


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

보시다시피 이것은 작은 예일뿐입니다. 여러 값을 가져 와서 형식을 지정하여 사용하거나 템플릿 파일로 전달할 수 있습니다.


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/


쿼리 문자열에 대해 다음과 같이 시도하십시오.

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)

산출: 여기에 이미지 설명을 입력하십시오


쿼리 문자열에서 값을 얻는 방법이 아니라 쿼리 문자열을 찾으러 왔습니다.

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)

산출:

플라스크 경로의 쿼리 매개 변수

참고 문헌 :

  1. query_string에 대한 공식 API 문서

이것은을 사용하여 수행 할 수 있습니다 request.args.get(). 예를 들어 쿼리 문자열에 필드가 있으면 다음을 date사용하여 액세스 할 수 있습니다.

date = request.args.get('date')

request플라스크의 수입품 목록에 " " 를 추가하는 것을 잊지 마십시오.

from flask import request

참고 URL : https://stackoverflow.com/questions/11774265/how-do-you-get-a-query-string-on-flask



반응형