티스토리 뷰

Flask

[Flask] 1. 플라스크의 기본 틀

Sims. 2020. 8. 31. 19:01
728x90

안녕하신가. 오늘은 Flask, 파이썬으로 웹을 만드는 법을 알아보고자 한다.

대개 파이썬으로 웹을 만들고자 하는 분들은 파이썬으로 무엇인가를 만들고 그것을 다른 사람들에게 보여주기 위해 접한다고 개인적으론 생각한다.(아님 말고...) 필자 또한 딥러닝 프로젝트를 혼자만 보기 아쉬워 Flask를 접하게 되었다.

또 지난번에 말했듯, 이미 파이썬으로 코딩을 마친 상태라 Flask로 웹서버를 구축한다면 이미 작성한 코드를 import하는것으로 쉽게 사용할 수 있을 것이라는 기대감 때문에 Flask를 접하기도 했다.(만약 Java로 서버를 구축한다면... python으로 코딩한 프로그램을 java언어로 바꾸거나 다른 작업을 거쳐야 하기 때문에.. 귀찮음... 할 줄도 모르고...)

 

자. 서론이 길었다. 바로 코드 들어간다. 입벌려라.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Flask 서버 구축! "

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

이 코드가 끝이다. 이 코드를 실행시켜보면...

 * Serving Flask app "Flask_app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

대략 이런 말이 나온다. 한마디로 http://127.0.0.1:5000/ 이곳으로 접속하라는 소리다. 

인터넷을 켜서 http://127.0.0.1:5000/에 들어가 보면...

 

flask 기본

 

이런 화면을 마주하게 될 것이다. 당신은 naver와 같은 서버를 웹사이트를 열었다.

물론, 남들은 들어오지 못하는 로컬 호스트지만.

상당히 쉽고 빠르게 Flask로 웹서버를 구축할 수 있다.

하지만 이 방식은 (return 문자)는 너무나 한정적인 방식이다. Flask는 html를 return 해 보여줄 수도 있다.

 

코드는...

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('myhome.html')

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

바뀐 거라곤 render_template라는 것뿐.

위와 같이 render_template를 사용하면 자신이 만들어 놓은 html를 웹에 띄울 수 있다. 이와 같이...

Flask html띄우기

myhome.html를 띄워보았다. 이렇게 html를 띄울 수 있다면, 당신이 만들어 놓은 html를 단순하게 띄우면 보다 더 자유롭게 폭넓게 웹에 적용할 수 있을 것이다.

 

아, 여기서 주의사항이 있다. 작성한 html은 반드시 프로젝트 폴더 안 'templates'라는 이름의 폴더를 만들고 이 폴더에 넣어야 한다. 이렇게 말이다.

html폴더

반드시 templates 폴더를 생성하고 html을 넣어야 한다. css, js 같은 것들도 당연히 html에 적용할 수 있다. 하지만 그 부분은 나중을 위해 남겨두기로 한다.

 

자. 얼마나 쉽게 웹서버를 열 수 있는가? 물론 나만 들어갈 수 있는 웹이지만... 이 부분이 정말 아쉽다.

Flask 웹서버를 검색해보면 어느 누구나 로컬 호스트(본인만 사용)에서만 가동되는 웹서버를 만드는 방법을 포스팅하고 있다. 웹서버를 배우는데 정작 우리는 '배포'해보지 않고 '이렇게 돌아가는구나' 혼자만 만족하고 끝난다.

 

하지만 우리들의 목표는 '다른 사람들이 볼 수 있는 웹사이트'이므로 필자는 다음 편엔 heroku를 이용하여 지금 만든 웹사이트를 배포부터 해보겠다. '배포'를 통해 여러분들의 흥미를 더 끌어보겠다.

 

반응형

'Flask' 카테고리의 다른 글

[Flask] 0. 나는 왜 Flask를 선택하였는가....?  (0) 2020.08.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   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
글 보관함