프로그래밍/파이썬

flask 에서 인수를 받는 방법 chatgpt

do121 2023. 3. 28. 20:59

Flask에서 파이썬 코드를 실행할 때 인수를 전달하는 방법에는 여러 가지가 있습니다.

    URL의 쿼리 문자열(Query String)을 이용하는 방법

    예시: http://localhost:5000/my_function?arg1=value1&arg2=value2

    Flask의 request 모듈을 이용하여 URL의 쿼리 문자열에서 인수를 추출할 수 있습니다.

    예시 코드:

    python

    from flask import Flask, request

    app = Flask(__name__)

    @app.route('/my_function')
    def my_function():
        arg1 = request.args.get('arg1')
        arg2 = request.args.get('arg2')
        # 파이썬 코드 실행
        return 'Result: ' + str(result)

    HTTP POST 요청을 이용하는 방법

    예시: http://localhost:5000/my_function

    HTTP POST 요청으로 인수를 전달하고, Flask의 request 모듈을 이용하여 인수를 추출할 수 있습니다.

    예시 코드:

    python

    from flask import Flask, request

    app = Flask(__name__)

    @app.route('/my_function', methods=['POST'])
    def my_function():
        arg1 = request.form.get('arg1')
        arg2 = request.form.get('arg2')
        # 파이썬 코드 실행
        return 'Result: ' + str(result)

    URL의 경로를 이용하는 방법

    예시: http://localhost:5000/my_function/value1/value2

    Flask의 URL 변수(variable) 기능을 이용하여 경로에서 인수를 추출할 수 있습니다.

    예시 코드:

    python

    from flask import Flask

    app = Flask(__name__)

    @app.route('/my_function/<arg1>/<arg2>')
    def my_function(arg1, arg2):
        # 파이썬 코드 실행
        return 'Result: ' + str(result)

위와 같이 Flask에서 파이썬 코드를 실행할 때 인수를 전달하는 방법은 매우 다양합니다. 사용자의 요구사항에 맞게 적절한 방법을 선택하여 구현할 수 있습니다.

아래는 인수를 파이썬 코드에 전달하는 방법임

from flask import Flask, request
import subprocess

app = Flask(__name__)

@app.route('/my_route')
def my_route():
    arg1 = request.args.get('arg1')
    # arg2 = request.args.get('arg2')
    result = subprocess.check_output(['python', 'my_script.py', arg1]) #, arg2])
    return 'Result: ' + result.decode()



my_script.py

import sys
import pandas as pd
import matplotlib.pyplot as plt

# 데이터프레임을 이용한 그래프 그리기 함수
def plot_dataframe(df):
    df.plot(kind='bar')
    plt.xticks(rotation=45)
    plt.tight_layout()

    # 그래프를 이미지 파일로 저장
    plt.savefig('plot.png')

# 인수로 받은 날짜에 해당하는 데이터프레임 생성
date = sys.argv[1]
df = pd.read_csv('data.csv')
df = df[df['date'] == date]

# 그래프 그리기
plot_dataframe(df)

# 그래프 이미지 파일의 경로 출력
print('plot.png')