Flask를 활용해 웹서비스를 하고 freeze로 패키지 묶음파일 만들기

강재민·2022년 5월 11일
1

Python

목록 보기
1/1
post-thumbnail
post-custom-banner

파이썬 패키지 설치

python3 --version			#파이썬 버전 확인
pip							#설치 확인
pip3						#설치 확인

sudo apt update					#설치전 패키지 받아오기
apt search pip					#패키지 목록 확인
sudo apt install python3-pip	#설치
y
pip --version					#설치 후 버전 확인
pip3 --version					#설치 후 버전 확인

pip3 list						#로컬 환경에 설치되어있는 python패키지 목록 확인

파이썬 가상환경 만들기

cd ~
mkdir python-flask
cd python-flask
sudo apt install python3-venv	#가상환경 만들 패키지 설치
python3 -m venv pyflask			#pyflask라는 이름으로 가상환경 생성
ls -a							#venv라는 디렉토리가 생성되어있는데 왠만하면 직접 관리하지 말기
. pyflask/bin/activate			#스크립트 파일 실행하는 명령어


가상환경으로 들어왔다는 것을 (pyflask) 를 통해 확인할 수 있다.

pip3 list			#가상환경에만 설치된 3개지의 기본 패키지를 확인 할 수 있다.
deactivate			#가상환경을 벗어남
pip3 list			#파이썬 글로벌 패키지 목록을 다시 볼 수 있다.

혹시나 pip --version 명령어를 했을 때 버전이 2.7이면 그냥 pip명령어로 했을 경우 원하는 결과가 안나올 수 있다.
그럴 때는 pip3 list 이런식으로 pip3라고 지정을 해주면 된다.


Flask로 웹서비스 호스팅

. pyflask/bin/activate			#가상환경에 접근할 때 디렉토리 꼭 확인
pip3 install Flask				#Flask 패키지 설치
vi hello.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

### 편집하고 :wq로 나오면됨
### @는 꾸미는 데코레이터임 /는 url의 경로임 루트경로에 오면 아래 함수를 실행하세요 라는 의미임
export FLASK_APP=hello		#hello.py를 기본적으로 실행하도록 환경변수 설정
flask run					#hello.py 실행
#python -m flask run		#flask run과 같은 표현 python module을 실행하라는 의미

터미널을 하나 더 열어서..

curl localhost:5000			#접속시도
flask run --host=0.0.0.0	#외부로 노출시켜줌

### 크롬으로 로컬 주소를 치고 들어가면
### flask 기본 포트는 5000번임


Flask 변수 예제

pwd						#현재 디렉토리 다시 확인
						#/home/vagrant/python-flask
mkdir templates
vi templates/hello.html
<!doctype html>
<title>Hello form Flask</title>
{% if name %}
  <h1>Hello {{ name }}'</h1>			#name을 변수로 받아서 출력
{% else %}
  <h1>Hello, World!'</h1>				#변수가 없다면 기본값 출력
{% endif %}
vi hello.py
from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)
flask run --host=0.0.0.0


freeze 명령어

pip3 freeze > requirements.txt		#freeze를 이용해 패키지 목록 묶기
ls									#freeze된 파일 확인
cat requirements.txt

pip3 install -r requrements.txt		#해당 내용으로 패키지 설치를 하기위한 명령어
post-custom-banner

0개의 댓글