파이썬 코드에서 DB 조회를 하려면?
SQLAlchemy에서 MySQL을 사용하려면?
SQLAlchemy통해 API와 DB를 연결하려면?
|-config.py
|-app.py
config.py
db = {
'user' : 'user',
'password' : 'password',
'host' : 'localhost',# 접속할 db 주소, 로컬이라 로컬호스트이고 외부이면 주소 필요
'port' : 3306, # rdb는 주로 3306 포트 통해 연결. db도 네트워크를 통해 연결되는 시스템이므로 포트 필수
'database' : 'db_app' # 실제 사용할 db 이름
}
DB_URL = f"mysql+mysqlconnector://{db['user']}:{db['password']}@{db['host']}:{db['port']}/{db['database']}?charset=utf8"
app.py
from flask import Flask, request, jsonify, current_app
from flask.json import JSONEncoder
from sqlalchemy import create_engine, text
# ... 중략
def create_app(test_config = None): # 이 함수를 통해 flask 실행. test_config 인자 받아서 단위 테스트 할때 테스트용 db 등 설정 정보 입력.
app = Flask(__name__)
app.json_encoder = CustomJSONEncoder
if test_config is None:
app.config.from_pyfile("config.py")
else:
app.config.update(test_config) # 테스트 실행시 test config 정보 적용
database = create_engine(app.config['DB_URL'], encoding = 'utf-8', max_overflow = 0) # db와 연결
app.database = database # sqlalchemy db 객체를 flask 객체에 저장해서 이 함수 외부에서도 db 접속하게
# ... 중략
return app # create_app 함수는 flask가 자동으로 factory 함수로 인지해서 이 함수를 통해 flask 실행
# 팩토리 함수(Factory Function)란, 객체를 생성하여 반환하는 함수를 말합니다 (객체를 공장에서 처럼 찍어내서)
잘 읽었습니다. 좋은 정보 감사드립니다.