goheung/app/__init__.py
2026-02-02 19:07:53 +09:00

47 lines
1.4 KiB
Python

from app.api import weather
from flask import Flask
import os
"""
-------------------------------------------------------------------------
File: __init__.py
Description:
Author: 소지안 프로
Created: 2026-02-02
Last Modified: 2026-02-02
-------------------------------------------------------------------------
"""
def create_app():
app = Flask(__name__)
# 설정
app.config['SECRET_KEY'] = 'your-secret-key-here'
# 라우트 등록
from app.routes import main
app.register_blueprint(main.bp)
# API 블루프린트 등록
from app.api import water_body_segmentation, flood, drought, vulnerability, terrain
app.register_blueprint(water_body_segmentation.bp)
app.register_blueprint(flood.bp)
app.register_blueprint(drought.bp)
app.register_blueprint(vulnerability.bp)
app.register_blueprint(terrain.bp)
app.register_blueprint(weather.bp)
# 기상청 예보: 매일 밤 12시(KST)에 API 호출하여 캐시 갱신
if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler(timezone='Asia/Seoul')
scheduler.add_job(
weather.fetch_and_cache_forecast,
'cron',
hour=0,
minute=0,
id='kma_midnight_fetch'
)
scheduler.start()
return app