Flask를 사용하여 쿼리 매개변수 가져오기

Salman Mehmood 2022년8월18일
Flask를 사용하여 쿼리 매개변수 가져오기

이 설명을 통해 Flask의 요청 쿼리 문자열을 사용하여 URL에서 매개변수를 가져오는 방법을 배웁니다.

Flask의 요청 쿼리 문자열을 사용하여 매개변수 추출

일반적으로 Flask에서 매개변수를 사용하여 깨끗한 URL을 작성하지만 어떤 이유로든 기존 쿼리 문자열을 원할 때가 있습니다. 우리의 쿼리 문자열은 작업하기 쉽습니다. &와 오른쪽 값으로 구분됩니다.

이제 우리는 그것들을 추출하는 방법을 정확히 보여줄 것이며 우리 애플리케이션의 어딘가에서 사용할 수 있으므로 시작하겠습니다. Flask 앱을 ​​설정하고 Flask 모듈에서 Flask 클래스를 가져오고 요청 변수를 가져와 Flask 클래스로 개체를 인스턴스화해야 합니다.

from flask import Flask, request

메인 블록을 정의하고 이 블록 내에서 run() 메서드를 사용하여 앱을 실행합니다. 그런 다음 debugTrue와 동일하게 넣습니다.

if __name__ == "__main__":
    app.run(debug=True)

이제 새 경로를 만들고 이 경로에 대해 params를 호출하고 함수 이름은 Get_Query_Params()로 지정합니다. 쿼리 문자열에서 매개변수를 가져오기 위해 일부 문자열을 반환합니다.

요청 변수를 사용하고 두 개의 인수를 정의하고 쿼리 매개변수에 액세스해야 합니다. 이를 얻으려면 쿼리 문자열의 모든 매개변수가 포함된 사전인 requests.args만 호출하면 됩니다.

첫 번째 것은 VAR1이라고 하고 두 번째는 VAR2라고 하며 requests.args['key'] 키를 사용하여 사전 값을 저장합니다. 페이지에 표시하기 위해 이러한 사전 항목을 반환합니다.

@app.route("/params")
def Get_Query_Params():
    VAR1 = request.args["var1"]
    VAR2 = request.args["var2"]

    return f"Student name is: {VAR!} and Father nmae is: {VAR2}"

서버를 시작하고 경로 내부에 매개변수를 전달하고 Enter 키를 눌러 표시된 매개변수를 확인합니다.

Flask 쿼리 매개변수 출력 1 가져오기

이제 쿼리 문자열에서 이러한 값을 쉽게 추출할 수 있습니다.

모든 쿼리 매개변수에 액세스하는 예를 하나 더 들어보겠습니다. request.args를 저장할 var1이라는 변수를 생성합니다. 이것은 쿼리 매개변수로 제공하는 모든 키와 값을 포함하는 사전입니다.

이제 사전 항목에 for 루프를 적용하고 이러한 키와 값에 액세스하고 인쇄할 수 있습니다.

@app.route("/")
def Get_Query_Params():
    var1 = request.args
    for key, value in var1.items():
        print(key, value)

키를 사용하면 if-else 문을 사용하여 특정 쿼리 매개변수에 액세스하여 실제 쿼리 매개변수가 존재하는지 확인할 수도 있습니다. 현재 키에 액세스하는 데 사용하는 방법은 get()이 키에 액세스하는 데 도움이 되는 방법이기 때문에 request.args['key']를 사용하는 대신 var1.get()을 사용하는 것입니다.

if "nationality" in var1.keys():
    print(var1.get("nationality"))
return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'

이제 서버를 저장하고 시작하고 브라우저로 이동하여 경로 내부에 키-값 쌍을 제공합니다. 이 페이지를 실행하면 표시된 매개변수와 키와 값이 인쇄되는 콘솔을 볼 수 있습니다.

Flask 쿼리 매개변수 출력 2 가져오기

양식에서 데이터를 가져오는 것과 매우 유사합니다. 누군가가 양식을 제출하면 엔드포인트에서 양식을 추출할 수 있습니다.

전체 파이썬 코드:

from flask import Flask, request

app = Flask(__name__)

# @app.route('/params')
# def Get_Query_Params():
#     VAR1=request.args['var1']
#     VAR2=request.args['var2']

#     return f'Student name is: {VAR1} and Father nmae is: {VAR2}'


@app.route("/")
def Get_Query_Params():
    var1 = request.args
    for key, value in var1.items():
        print(key, value)
    if "nationality" in var1.keys():
        print(var1.get("nationality"))
    return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'


if __name__ == "__main__":
    app.run(debug=True)
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn