파이썬 Flask로 간단 웹서버 구동하기

Chris·2019년 9월 3일
2
post-custom-banner

Flask는 Python으로 구동되는 웹 어플리케이션 프레임워크이다. Django 프레임워크보다 가볍고, 스케일아 작은 서버부터 스케일 큰 서버를 만들 수가 있으며, JinjaWerkzeug를 포함하고 있다.

Flask 프레임워크: https://palletsprojects.com/p/flask/

우선 가상환경을 만들고, Flask를 설치한다.

Flask 설치

# Flask 설치
$ pip install flask

# Flask 확인
$ flask --version

Flask 어플리케이션 만들기

pyflask 폴더를 만들고, app.py 파일을 생성한다.

app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello Flask'
    
@app.route('/info')
def info():
    return 'Info'

Flask 서버 구동 확인하기

CLI환경에서 pyflask 폴더에서 flask run 입력하고, Chrome에서 http://127.0.0.1:5000/으로 접속하면 된다. info 라우터를 확인하려면 http://127.0.0.1:5000/info/에 접속하면 확인 가능하다.

템플릿 추가하기

pyflask 폴더 내에 templates 폴더를 추가하고, index.htmlinfo.html 파일을 추가한다.

app.py에 템플릿 코드 추가

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')
    
@app.route('/info')
def info():
    return return render_template('info.html')

templates/index.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Flask Index</title>
</head>
<body>

<h1>Hello Flask</h1>
<p>This page is for Flask tutorial.</p>

</body>
</html>

templates/info.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Flask Info</title>
</head>
<body>

<p>This page is Info page.</p>

</body>
</html>

추가된 페이지 확인

app.pyrouter를 통해 http://127.0.0.1:5000/http://127.0.0.1:5000/info/에 접속하면 index.htmlinfo.html를 확인할 수 있다.

profile
올드보이 코더
post-custom-banner

2개의 댓글

comment-user-thumbnail
2021년 5월 29일

안녕하세요 많은 도움 되었습니다.
질문이 있는데요, 저는 파이썬 파일을 실행시킨 뒤, terminal에 url 이 나오고 그것을 chrome 에 붙여 넣어야지 웹사이트로 갈 수 있다고 이해했습니다.
근데 파이썬을 모르는 사람이 제가 파이썬 파일을 다 실행 시킨뒤 끄고 난 뒤에, url 만 복붙하면 똑같은 페이지로 문제 없이 접근할 수 있나요?

1개의 답글