1) 플라스크 api 서버 pythonanywhere에 배포
그냥 과정을 나열하면 복잡하다고 느낄 수 있기 때문에
4개의 섹션으로 나누었다.
1. 파일준비
2. 파이썬애니웨어에 파일설치
3. 파이썬애니웨어에 앱생성
4. 세팅(앱과 파일연결)
자신의 컴퓨터에서 해야할 부분
1. 파일준비
1) requirements.txt생성
2) 커밋한뒤 깃허브에 푸쉬하기
섹션 1 파일준비 끝
파이썬애니웨어에서 해야할 부분
2. 파일설치
1) 콘솔에 들어가 가상환경설치 (가상환경의 이름을 myvenv로 만듬)
mkvirtualenv myvenv --python=/usr/bin/python3.8
2) 깃에서 클론하기
git clone https://github.com/깃이름/프로젝트이름.git
깃허브의 아이디와 비밀번호를 입력하라고 하는데 비밀번호 대신에 엑세스토큰을 붙여 넣는다.
3) 가상환경으로 들어가기
workon myvenv
파이썬 애니웨어 FILE 메뉴에 가보면 아래처럼 폴더와 파일들이 설치된 걸 볼 수 있다.
.virtualenvs/
프로젝트명/
4) 패키지 설치하기 (프로젝트로 들어가 requirements.txt를 설치)
cd 프로젝트명
pip install -r requirements.txt
섹션 2 파일 설치 끝
3. 앱 생성하기
이제 이렇게 설치한 파이썬파일과 연결할 앱을 만들어 주어야 한다.
1) 웹앱 만들기
웹앱이 없다고 하는데 하나 만들어줌
2) 프레임워크 선택
프래임워크를 고르라고 하는데 이미 플라스크와 가상환경을 만들었기 때문에 매뉴얼 컨피그레이션을 선택
3) 설치한 파이썬 버전을 선택
이렇게하면 웹앱이 생성완료
4. 세팅하기
파이썬애니웨어에 올린 파이썬 파일과 방금 생성한 앱을 연결 시켜주는 것이다.
1) 소스코드를 연결시키기
프로젝트명 폴더명 적어줌
2) WSGI 컨피그레이션 수정
아래 링크를 클릭해서 헬로우월드 색션을 모두 지워줌
여기 부터
여기까지 다 지워줌
---------------------------
여기는 아래처럼 수정을 할 것이다. (main.py에서 app을 가져옴)
참조 애플리케이션 팩토리 패턴을 사용한다면
from 디렉토리네임 import app as application
아니면 함수로 실행하는 경우 app = create_app()
https://flask.palletsprojects.com/en/2.0.x/patterns/appfactories/
https://flask-sqlalchemy.palletsprojects.com/en/2.x/contexts/
https://www.py4u.net/discuss/201960
3) 가상환경을 연결시켜주고
끝 실행해봄
이렇게 나와서 조금 놀랐지만 / 로 향하는 리퀘스트를 만들어 놓지 않아서 그런것 이였다.
작동결과 잘됬다.
※코드를 바꿔야하는 경우.
넷틀리파이에서는 깃에 푸쉬를 하면 자동으로 바뀐 코드가 적용이 되지만
파이썬 애니웨어는 그렇지 않다. 그래서
1) 소스 수정시 깃허브에 푸쉬
2) 파이썬 애니웨어에서 git pull를 한뒤 리로드를 하면 됨.
디비는 그냥 sqlite3를 임시로 쓰고 있는데 파이썬애니웨어에서
따로 디비를 생성할 필요가 없었다. 그냥 파일 하나가 아래 처럼 생성이된다. (아래 보이는 inventory.db는 sqlite파일이다.)
SQLAlchemy가 아닌를 사용하지 않고 mysql데이터베이스를 연결 하고 싶으면 아래 블로그에 잘 나와있다.
https://seyeon-hello.tistory.com/2
다음 글은 SQLAlchemy를 사용하여 my-sql DB를 연결하는 방법에 대해 설명하려고 한다.
'Computer 관심 > Flask' 카테고리의 다른 글
sqlalchemy 사용시 db object를 jason으로 바꾸는 방법 (0) | 2021.09.24 |
---|---|
2) 플라스크 api pythonanywhere MYSQL DB와 연결하기 (0) | 2021.09.23 |
파이썬으로 Firestore 에 데이터 올리기 (0) | 2020.11.09 |
플라스크 static 파일 경로(플라스크 이미지 url) (0) | 2020.03.15 |
플라스크 사용해보기 (0) | 2018.05.03 |