[Flask] 캡스톤 - FLASK 기초
캡스톤 프로젝트에서 파이썬 머신러닝 코드를 수행하기 위한 서버를 FLASK로 REST API서버를 만들어서 사용할 계획이다.
원래 Spring Boot 가 편해서 이거로 하고싶었는데 자바코드안에서 파이썬코드를 실행시키는 Jython?이 konlpy같은거 import할때 환경변수때문에 오류가 나는거 같은데 (??) 그걸 해결하려고 머리쓰고싶지 않아서,, ㅎㅎ
알고보니깐 장고가 거의 자바의 스프링같은 유명한 파이썬 프레임워크같던데 ,, 일단은 api로 사진받고 코드돌리고 텍스트 보내주는것만 하
면 되는것같으니깐 flask그냥 쓰면될거같다.
출처:https://doorbw.tistory.com/31[Tigercow.Door] (1-4편 )
블로그 #1
1. 플라스크(Flask) 란?
파이썬 웹 어플리케이션을 만드는 프레임 워크.
특징은 플라스크는 그러한 프레임워크들 중에서도 매우 심플하고 가벼운 느낌
2.플라스크 시작
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() |
app.run() 을, app.run(host='0.0.0.0') 으로 변경하면 외부에서 접근 가능한 것으로 설정하게 된다.
from flask import Flask
try:
# The typical way to import flask-cors
from flask_cors import CORS
except ImportError:
# Path hack allows examples to be run without installation.
import os
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
os.sys.path.insert(0, parentdir)
from flask_cors import cross_origin
CORS(app, resources={r'*': {'origins': '*'}})
- CORS 처리하는 코드
근데 지금 실행하니깐
이런 오류가 나서 쳐보니깐
Flask는 Production Server가 아니다.
ec2에 flask로 만든 서버를 실행하고.. 5000 번 포트를 열고.. 외부에서 아무리 접속하려고 해도 안된다-_- * Environment: production WARNING: Do not use the development server in a production environment...
jhb.kr
나중에 https://chrisdtran.com/2017/deploy-flask-on-ec2
How to Deploy a Flask App on an AWS EC2 Instance
In this post, I will show an example of how to deploy a Flask app on an AWS EC2 Instance. We will be using nginx and Gunicorn to deploy this app.
chrisdtran.com
여기보고 nginx 하거나 지금은 그냥 host='0.0.0.0'해주면 될 것 같다.
===
블로그 #2
from flask import Flask, render_template, redirect, request, url_for
이런거 해주어야하고
@app.route('/main')
@app.route('/main/<int:num>') # 두개의 주소를 모두 아래있는 함수로 실행. 이중라우팅
def inputTest(num=None):
return render_template('main.html',num=num)
@app.route('/calculate',methods=['POST'])
def calculate(num=None):
if request.method == 'POST':
temp = request.form['num']
else:
temp = None
return redirect(url_for('inputTest',num=temp))
render_template은 /templates/main.html 디렉터리 폴더가 이렇게 돼있어야 template not found 에러가 안난다.
firebase, mongodb ( noSql) , mysql (rdbms)
뭘 써야할지 고민해봐야겠다
출처: https://cionman.tistory.com/44 [Suwoni블로그] 몽고디비 관련 내용
연관관계에 따른 데이터 저장해야되면 Mysql쓰고
그냥 저장하고 수정없이 read write많이하면 nosql쓰는느낌인가,.?
----------------참고
pip란, Python Package Index(PyPI)라는 저장소에서 제공되는 파이썬 패키지 소프트웨어를 설치 및 관리하는 패키지 관리 시스템
출처: https://doorbw.tistory.com/225 [Tigercow.Door]