Flask
플라스크는 우리가 python으로 작동시키는 것을 웹으로 보여줄 수 있습니다.
많이 쓰이는 Django도 있지만 Flask를 배워서 먼저 Flask로 접근하게 되었습니다.
설치는 간단히 아래와 같습니다.
$ pip install flask
# 예시 입니다.
from flask import Flask, render_template
def render_template():
return
@app.route("/")
def index():
return render_template('image.html')
위와 같이 하면 현재 디렉토리의 image.html를 보여줍니다 튜툐
링크를 들어가면 튜토리얼을 해 볼 수 있습니다.
간단하게 이미지 사이즈를 바꾸는 것을 해보면 아래와 같습니다.
def image_resize(image, width, height):
return image.resize((int(width), int(height)))
@app.route('/image_preprocess', methods=['POST'])
def preprocessing():
if request.method == 'POST':
file = request.files['uploaded_image']
if not file: return render_template('index.html', label="No Files")
img = Image.open(file)
is_change_size = request.form.get('pre_toggle')
img.save('result_image.png')
src_dir = os.path.dirname(os.path.abspath(__file__))
image_path = os.path.join(src_dir, 'result_image.png')
# 결과 리턴
return render_template('image.html', label=image_path)
image.html의 연결점만 찾으면 쉽게 바뀐 이미지를 올려줄 수 있습니다.
저는 차트를 그리고 싶었는데 프론트엔드에서 어떻게 만들 수 있는 지 몰라 구글차트를 찾아 거기서 요구하는 json형식을 반환해야 해서
1년간의 코인데이터를 upbit Api를 사용하여 가져오고 ARIMA모델을 가지고 예측을 한 데이터를 json의 형식으로 반환하며
heroku를 통해서 배포를 하였습니다.
구글 차트를 사용하는 곳은 블로그에서 사용하며 heroku에서 배포된 json을 가져와서 사용합니다. 깃허브 페이지에서 바로 배포하지 못하고 따로 가져와 사용하는 이유는 정적페이지라 그렇습니다.
블로그 앱의 장단점
이렇게 해서 얻은 이점은 블로그에 웹앱을 보여주는 것이고 매우 큰 단점은 6~7초에 한번 페이지가 업데이트 되어
매우 느린 앱이 된다는 것입니다. 코인 예측을 매우 빠르게 해도 블로그에서 저 시간만큼 지나고 나서 업데이트를 진행합니다.
만약에 블로그를 깃허브블로그가 아닌 직접 웹페이지를 만드시거나 다른 걸 사용하면 이문제는 없어지고 훨씬 괜찮은 블로그 웹앱이 될 것입니다.