*Flask 필요한 것만 요약

- python3 설치 후 python3 버젼 확인

python3 -V

- python3-venv 설치

sudo pip install python3-venv

- 프로젝트 폴더 만들고, 그 폴더로 들어가기

mkdir flask_test_2
cd flask_test_2

- 파이썬 가상 환경 생성

python3 -m venv venv

- 파이썬 가상 환경 구동

source venv/bin/activate

- PATH 추가

export PATH="/Users/mezzaninegwak/venvs/myproject/bin:$PATH"

- 가상 환경 구동 후 Flask 설치

pip install Flask

 

- flask_test.py 파일 생성

- vi flask_test.py

from flask import Flask
app = Flask(__name__)

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

 

- 플라스크 서버를 실행할때는 반드시 FLASK_APP 이라는 환경변수를 통해 플라스크 앱을 지정해 주어야 한다.

(flask_test) mezzaninegwak@MacBook-Pro flask_test % export FLASK_APP=flask_test

 

- 플라스크 실행환경을 운영이 아닌 개발로 변경

export FLASK_ENV=development

- 플라스크 서버를 실행할때는 반드시 FLASK_APP 이라는 환경변수를 통해 플라스크 앱을 지정해 주어야 함

export FLASK_APP=pybo

 

- 플라스크 앱 실행

flask run

- 가상환경으로 진입하는 myproject.sh 파일에 FLASK_APP과 FLASK_ENV 환경변수를 미리 설정해 놓으면 매번 환경변수를 입력하는 수고를 덜 수 있다. (/Users/mezzaninegwak/venvs/myproject/myproject.cmd 로 저장) - 이게 워킹이 잘 안됨 해결해야 함

echo off
cd /Users/mezzaninegwak/projects/myproject
export FLASK_APP=pybo
export FLASK_ENV=development
source /Users/mezzaninegwak/venvs/myproject/bin/activate

- Flask-Migrate 설치

pip3 install Flask-Migrate

 

 

*프로젝트 구조

- /Users/mezzaninegwak/projects/

- flask_test/

-                 __init__.py

-                 models.py

-                 forms.py

-                 views/

-                 views/main_views.py

-                 static/

-                 static/style.css

-                 templates/

-                 templates/index.html

- config.py

 

*models.py

- ORM을 지원하는 python DB toolkit인 SQLAlchemy 사용

- SQLAlchemy는 모델 기반으로 DB를 처리하기 때문에 모델 클래스들을 정의하는 models.py 파일이 필요

 

*forms.py

- 브라우저에서 서버로 전송된 폼을 처리하기 위해서 WTFroms 라는 라이브러리 사용

- WTForms도 모델 기반으로 폼을 처리하기 때문에 폼 클래스들을 정의하는 forms.py 파일이 필요

 

*views

- 함수를 views 디렉터리를 생성하여 그 하위에 기능별로 저장

- 기능별로 분리하여 뷰 파일들을 계속 만들어 간다.

 

*static

- static 디렉터리는 스타일시트(*.css), 자바스크립트(*.js), 이미지 파일(*.jpg, *.png) 등을 저장하는 디렉터리로 사용

 

*templates

- 질문목록, 질문상세 등의 HTML 파일을 저장하는 디렉터리

- question_list.html, question_detail.html 등의 템플릿 파일을 계속 추가

 

*config.py

- 프로젝트의 환경변수 등을 저장하는 파일

- DB 환경 등에 대한 설정을 이 파일에 저장

 

반응형

+ Recent posts