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')
'프로그래밍 > 파이썬' 카테고리의 다른 글
층별 자료를 읽어서 그래프 그래기 chatgpt (2) | 2023.05.25 |
---|---|
값을 저장하고 읽는 방법 chatgpt (0) | 2023.04.07 |
pdf 근접단어 찾기(pdfminer) chatgpt (0) | 2023.03.21 |
pdf 근접단어 찾기 chatgpt (0) | 2023.03.21 |
환율 예측 chatgpt (0) | 2023.02.24 |