Notice
Recent Posts
Recent Comments
Link
12-27 12:54
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

킹머핀의 제작 일지

코랩) Flask 로컬 서버 접속하는 법 본문

엔트리/심화

코랩) Flask 로컬 서버 접속하는 법

KingMUffin 2021. 3. 13. 16:37

이번에도 아나콘다를 사용하시는 강의를 무시하고 구글 코랩으로 시도중이다. 그래도 이번엔 정말로!! 교수님이 뭘 써도 괜찮다고도 하셨고, 저번에 실패했던 '마우스 입력용 창 띄우기' 같은 웹에서 작동할지 의문인 기능도 없어보인다! 아마도.

그런데 역시나 시작부터 문제가 생겼다는 거. 그래도 이번엔 해결하기 어렵지 않아보인다..! 구글에 코랩에서 플래스크를 사용하는 방법을 검색해보았지만 아무도 시도조차 하지 않았는지 그런 글이 없다. 그러다가, 영어로 검색하니 바로 찾았다.

정말 간단하다. 이걸 가르쳐주는 한국어 글이 없다면 내가 최초로 만들겠다.

from flask import Flask

app = Flask(__name__)
@app.route('/')

def home():
     return "Hello Flask!"

if __name__ == '__main__':
     app.run(host='0.0.0.0', port=3000)

 

이런 평범한 코드는 아나콘다로 설치하고 주피터 노트북으로 실행한다면 localhost:3000 에서 쉽게 확인할 수 있을 것이다.

그런데 구글 코랩은 내 컴퓨터가 아닌 가상 컴퓨터의 로컬 서버에서 작동하기 때문에, 위와 같이 내 컴퓨터의 포트로 접속해봤자 헛짓거리다. 그래서 구글 코랩에서 저 코드를 실행한 서버의 경로를 알 필요가 있다.

바로 flask-ngrok을 이용하는 방법. Flask는 구글 코랩에 기본으로 설치되어 있지만, ngork은 그렇지 않기 때문에 !pip install flask-ngrok을 한 번 실행해서 설치해야 한다. (앞의 '!'는 터미널에서 실행하겠다는 구글 코랩 명시다)

그 다음 위의 코드를 이렇게 바꾸자.

from flask import Flask
from flask_ngrok import run_with_ngrok

app = Flask(__name__)
run_with_ngrok(app)
@app.route('/')

def home():
     return "Hello Flask!"

if __name__ == '__main__':
     app.run()

 

run()에 로컬 경로가 없는 것을 볼 수 있다. (있으면 오류뜸) (아니 그럼 debug 인수도 사용할 수 없잖아?)

이제 !python (filename).py를 실행하자.

io로 끝나는 임시 주소를 클릭하면, 원하는 HTML 결과를 확인할 수 있을 것이다.

 

 

...지금이라도 아나콘다 설치할까..

 

(그렇게 모든 예제 코드를 위처럼 수정하던 저는 세션을 다시 시작할 때마다 static과 templates 폴더를 새로 만들어야 하는 사실을 떠올리곤 아나콘다를 설치하기로 했습니다. 폴더도 코드로 자동 생성하면 되긴 하겠지만, 아니야.. 이 이상 방법을 찾으면 저번 꼴이 나는 거야......)

(3월 21일, 맥 아나콘다에서 이번 주차 수업에 필요한 konlpy를 설치했지만 ModuleNotFoundError: No module named 'jpype' 라는 오류가 생겨 jpype 관련된 건 모두 설치해봤지만 해결되지 않아 다시 이 글을 참고하며 구글 코랩을 사용했다. 코랩은 jpype를 내장하고 있어서 konlpy만 설치하면 더 필요한 설치가 없다. 다만 과제물 작성에 필요한 한컴스페이스 에디터가 먹통이 됐다. 그냥.. 이 강의를 들을 때는 윈도우를 사용해야겠다.. 한컴스페이스를 대체하는 폴라리스 웹 한글도 맥에선 안 돌아간다.. 아까운 내 시간.. 스트레스......)