Vercel에 Python/Flask 앱을 배포하는 방법
전제 조건
1 단계
아직 계정이 없는 경우 Vercel으로 계정을 만드십시오.
Vercel은 워크플로에 완벽하게 맞는 정적 사이트 및 Serverless Functions용 클라우드 플랫폼입니다. 이를 통해 개발자는 구성 없이 즉시 배포되고 자동으로 확장되며 감독이 필요 없는 Jamstack 웹 사이트 및 웹 서비스를 호스팅할 수 있습니다.
2 단계
npm을 사용하여 컴퓨터에 전역적으로 Vercel을 설치합니다https://www.npmjs.com/package/vercel.
npm i -g vercel
3단계
최신 버전의 Python3이 설치되어 있고 pip3가 포함된 Flask 프레임워크가 있는지 확인합니다.
https://pypi.org/project/Flask/
pip install Flask
프로젝트 설정
프로젝트 만들기
가상 환경을 작동시키는 데 문제가 있는 경우 이 문서를 읽으십시오https://docs.python.org/3/library/venv.html.
mkdir vercel-python-app
cd vercel-python-app
python3 -m venv venv
. venv/bin/activate
cd venv
touch index.py
코드 편집기에서 프로젝트를 연 다음
index.py
파일에 Python/Flask 서버를 만듭니다.from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Home Page Route'
@app.route('/about')
def about():
return 'About Page Route'
@app.route('/portfolio')
def portfolio():
return 'Portfolio Page Route'
@app.route('/contact')
def contact():
return 'Contact Page Route'
@app.route('/api')
def api():
with open('data.json', mode='r') as my_file:
text = my_file.read()
return text
터미널에서 다음 명령을 실행하여 개발 환경을 설정합니다.
export FLASK_APP=index.py
export FLASK_ENV=development
Windows를 사용하는 경우 환경 변수 구문은 여기를 참조하십시오https://flask.palletsprojects.com/en/1.1.x/quickstart/#a-minimal-application.
이제
data.json
파일을 만들어 venv
의 루트 폴더에 넣고 아래에 .json
를 추가합니다.[
{
"id": 1,
"first_name": "Rene",
"last_name": "Clemmett",
"email": "[email protected]",
"gender": "Male",
"ip_address": "42.86.99.75"
},
{
"id": 2,
"first_name": "Rustie",
"last_name": "Chrishop",
"email": "[email protected]",
"gender": "Male",
"ip_address": "197.128.10.252"
},
{
"id": 3,
"first_name": "Joe",
"last_name": "Cocklie",
"email": "[email protected]",
"gender": "Male",
"ip_address": "124.81.44.28"
},
{
"id": 4,
"first_name": "Diane",
"last_name": "Catt",
"email": "[email protected]",
"gender": "Female",
"ip_address": "169.47.61.184"
},
{
"id": 5,
"first_name": "Quinton",
"last_name": "Shellsheere",
"email": "[email protected]",
"gender": "Male",
"ip_address": "2.57.97.184"
},
{
"id": 6,
"first_name": "Lena",
"last_name": "Paull",
"email": "[email protected]",
"gender": "Female",
"ip_address": "121.4.165.63"
},
{
"id": 7,
"first_name": "Corena",
"last_name": "Lamswood",
"email": "[email protected]",
"gender": "Female",
"ip_address": "78.65.53.3"
},
{
"id": 8,
"first_name": "Justinian",
"last_name": "Nequest",
"email": "[email protected]",
"gender": "Male",
"ip_address": "62.24.98.224"
},
{
"id": 9,
"first_name": "Vladimir",
"last_name": "Boeter",
"email": "[email protected]",
"gender": "Male",
"ip_address": "87.119.34.255"
},
{
"id": 10,
"first_name": "Jillene",
"last_name": "Eades",
"email": "[email protected]",
"gender": "Female",
"ip_address": "159.173.99.31"
}
]
아래 명령을 실행하여 브라우저에서 로컬로 작동하는 Python/Flask 앱을 확인하세요.
flask run
Vercel에 배포
프로젝트의 루트 폴더
venv
폴더 안에 있는지 확인한 다음 터미널에서 명령vercel
을 실행합니다.아래 프로젝트 설정 설정을 가이드로 사용하여 Vercel로 나만의 프로젝트를 설정하세요.
? Set up and deploy “~/Desktop/username/vercel-python-app/venv”? [Y/n] y
? Which scope do you want to deploy to? username
? Link to existing project? [y/N] n
? What’s your project’s name? venv
? In which directory is your code located? ./
> Upload [====================] 98% 0.0sNo framework detected. Default Project Settings:
- Build Command: `npm run vercel-build` or `npm run build`
- Output Directory: `public` if it exists, or `.`
- Development Command: None
? Want to override the settings? [y/N] n
완료되면 몇 가지 링크를 제공합니다. 앱은 아직 작동하지 않을 예정이며,
index.py
파일의 브라우저 파일 다운로드만 제공할 것입니다. Vercel이 Python 애플리케이션임을 알 수 있도록 vercel.json
파일을 생성하여 루트 폴더에 넣어야 합니다. 그리고 index.py
파일이 프로젝트의 다른 서버 측 코드와 함께 루트 폴더에 남아 있어야 하는 것이 매우 중요합니다. 그렇지 않으면 앱이 작동하지 않습니다.vercel.json
파일을 생성하여 프로젝트 폴더의 루트에 넣은 후 아래 코드를 추가합니다.{
"version": 2,
"builds": [
{
"src": "./index.py",
"use": "@vercel/python"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "/"
}
]
}
그런 다음 수동으로
requirements.txt
파일을 만들고 아래 코드를 사용하여 루트 폴더에 넣습니다.flask==1.0.2
여러 패키지가 설치된 더 복잡한 응용 프로그램을 만들 때
requirements.txt
파일을 자동으로 만들기 위해 아래 명령을 사용하는 것이 가장 좋습니다. 이것은 Node.js로 작업한 경우 익숙해야 하는 package.json
파일과 동일합니다. 작동하려면 서버에 종속 항목을 설치해야 합니다. 그러나 이 간단한 예에서는 우리가 사용하는 유일한 패키지가 flask이므로 필요하지 않습니다.pip3 freeze > requirements.txt
이제 명령
vercel --prod
을 실행하여 앱을 배포합니다. 프로덕션 링크를 열면 앱이 전체 작업 경로로 온라인에서 작동해야 합니다.
Reference
이 문제에 관하여(Vercel에 Python/Flask 앱을 배포하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andrewbaisden/how-to-deploy-a-python-flask-app-to-vercel-2o5k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)