*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 환경 등에 대한 설정을 이 파일에 저장
'스타트업 > 프로그래밍' 카테고리의 다른 글
[프로그래밍] Flask 필요한 것만 요약_#3 (0) | 2020.09.09 |
---|---|
[프로그래밍] Flask 필요한 것만 요약_#2 (0) | 2020.09.09 |
[프로그래밍] bash_profile 과 profile 차이점 (0) | 2020.09.07 |
[프로그래밍] 리눅스 alias (0) | 2020.09.07 |
[프로그래밍] pip 와 pip3 차이 (0) | 2020.09.07 |