파이썬 Flask 웹서버 구동하기

💜poiuyy0420·2021년 1월 19일
1

Flask

목록 보기
1/2
post-thumbnail

Flask Docs 위키백과 플라스크

✍Flask 프레임워크를 통해서 간단하게 웹서버 구동을 해보겠다.

Flask

Flask는 Python으로 작성된 마이크로 웹 프레임워크의 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다. Flask는 특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라 부른다.

Micro Framework

마이크로 프레임워크(Micro Framework)에서의 “마이크로”는 핵심기능만 간결하게 유지하지만, 확장가능한 것을 목적으로 한다. 최소한의 필요한 구성 요소를 제공하기 때문에 시작이 쉽고, 자신이 필요한 도구와 라이브러리를 자유롭게 선택해서 사용할 수 있다.

Flask 가상 환경 설정

폴더를 만든 후 이름이 flask_evn 가상 환경을 만들어 활성화한다.
명령 프롬프트 앞에 추가된 (flask_evn)가 보이면 가상 환경에 있음을 나타낸다.

# 가상환경 만들기
virtualenv flask_evn
# 가상환경 활성화
source flask_evn/bin/activate

가상환경에 flask를 설치한다.
pip freeze를 사용하여 설치된 라이브러리를 조회 할 수 있다.

# flask 설치
(flask_evn) pip install flask

# flask 확인
(flask_evn) flask --version

# 설치된 라이브러리를 조회
(flask_evn) pip freeze
click==7.1.2
Flask==1.1.2
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
Werkzeug==1.0.1

Flask 애플리케이션 생성

project 폴더를 만들고, app.py 파일을 생성한다.
main을 직접 실행하는 코드로 변경하면 파이썬 명령어로 실행할 수 있다. debug=True라고 명시하면 해당 파일의 코드를 수정할 때마다 Flask가 변경된 것을 인식하고 다시 시작한다.
@app.route('/경로') 를 쓸 때 URL 경로는 반드시 “/” (슬래시)로 시작해야 한다.

# app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

# 파이썬 명령어로 실행할 수 있음
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000, debug=True)

Flask 서버 구동

main 을 직접실행하는 코드를 쓰지 않았다면 flask run 명령어로 서버 구동을 한다. 입력 후 http://127.0.0.1:5000/ 로 들어가서 확인한다.

(flask_evn) FLASK_APP=app.py flask run
(flask_evn) flask run

# 파이썬 명령어 사용
(flask_evn) python app.py

템플릿 추가하기

project 폴더 내에 templates 폴더를 추가하고, templates 안에 hello.html 과 register.html을 추가한다.

app.py에 템플릿 코드 추가한다.

# app.py

from flask import Flask, render_template

app = Flask(__name__)

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

@app.route('/')
def hello_world():
    return render_template('hello.html')

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000, debug=True)

페이지 확인하기

app.py의 router를 통해 http://127.0.0.1:5000/http://127.0.0.1:5000/register 주소를 확인할 수 있다.

profile
안녕하세요 :)

0개의 댓글