반응형
Flask 애플리케이션에서 Vercel의 환경 변수로 저장된 DATABASE_URL을 가져오는 방법은 os.getenv()를 사용하는 것입니다. Vercel에서는 배포된 애플리케이션에 대해 환경 변수를 설정할 수 있으며, 이 값은 코드에서 환경 변수로 접근할 수 있습니다.
Vercel에서 DATABASE_URL 설정하기:
- Vercel Dashboard에서 환경 변수 설정
- Vercel 대시보드에 로그인합니다.
- 해당 프로젝트로 이동합니다.
- Settings 탭에서 Environment Variables 섹션을 찾습니다.
- Key에 DATABASE_URL을 입력하고, Value에 Neon PostgreSQL 데이터베이스 URL을 입력합니다.
- DATABASE_URL=postgresql://username:password@hostname:port/dbname
- Flask 애플리케이션에서 환경 변수 접근
- Flask에서 DATABASE_URL을 가져오기 위해 os.getenv()를 사용합니다.
- 이를 SQLALCHEMY_DATABASE_URI에 할당하여 데이터베이스에 연결할 수 있습니다.
반응형
코드 예시:
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from dotenv import load_dotenv
# 환경 변수 로드 (로컬 환경에서만 필요, Vercel에서는 자동으로 환경 변수가 로드됨)
load_dotenv()
app = Flask(__name__)
#Neon PostgreSQL 연결 정보 (환경 변수 활용)
database_url = os.getenv('DATABASE_URL', '')
# 'postgres://' → 'postgresql://'로 변경
if database_url.startswith("postgres://"):
database_url = database_url.replace("postgres://", "postgresql://", 1)
# Vercel에서 제공하는 DATABASE_URL 환경 변수를 사용하여 연결
app.config['SQLALCHEMY_DATABASE_URI'] = database_url
# SQLAlchemy 초기화
db = SQLAlchemy(app)
@app.route('/')
def home():
return "Hello, World!"
if __name__ == "__main__":
app.run(debug=True)
.env 파일 (로컬 개발 환경에서만 사용):
Vercel에서는 환경 변수를 자동으로 처리하지만, 로컬 개발 환경에서는 .env 파일을 사용하여 환경 변수를 관리할 수 있습니다.
DATABASE_URL=postgresql://username:password@hostname:port/dbname
이 파일은 python-dotenv 라이브러리로 로드되며, 개발 환경에서만 사용됩니다.
Vercel 배포 시:
Vercel에 배포되면, Vercel 대시보드에서 설정한 DATABASE_URL 환경 변수를 Flask 애플리케이션에서 자동으로 사용할 수 있습니다. 따라서 별도의 .env 파일은 필요하지 않습니다. Vercel은 배포된 애플리케이션에서 해당 환경 변수를 자동으로 로드합니다.
이 방법을 사용하면 Vercel에서 자동으로 관리되는 환경 변수를 Flask 애플리케이션에서 안전하게 사용할 수 있습니다.
반응형
'IT > SW Dev.' 카테고리의 다른 글
디자인 패턴(Design Patterns) - 생성 패턴의 주요 유형(싱글톤, 팩토리 메서드, 프로토타입 등) (1) | 2025.03.05 |
---|---|
UML(Unified Modeling Language) 버전별 특징, 사용 사례, 쉽고 많이 사용하는 툴 등 (0) | 2025.03.05 |
어느 것을 선택할까? Vercel or Netlify (0) | 2025.03.01 |
Vercel 과 잘 맞는 무료 데이터 베이스 - Neon, PlanetScale, Supabase (1) | 2025.03.01 |
문장속 단어빈도 분석 및 시각화 WordCloud(워드 클라우드) - python (0) | 2025.02.28 |