Spaces:
Sleeping
Sleeping
# portfolio/app.py | |
from flask import Flask, render_template, url_for, redirect | |
# from npc_social_network.routes.npc_route import npc_bp | |
# from npc_social_network import simulation_core | |
# from stock.routes.stock_route import stock_bp | |
import threading | |
import logging | |
import os | |
# ------------------------------------------------------------------- | |
# ํ์ผ 1: portfolio/app.py (์์ ) | |
# ์ญํ : ์ ์ฒด ํฌํธํด๋ฆฌ์ค์ ์ง์ ์ . | |
# NPC ์๋ฎฌ๋ ์ด์ ์ค๋ ๋๋ฅผ ์์ํ๊ณ , ๊ด๋ จ URL ๊ทธ๋ฃน(Blueprint)์ ๋ฑ๋กํฉ๋๋ค. | |
# ------------------------------------------------------------------- | |
# ์๋ฎฌ๋ ์ด์ ์ด ์ฌ๋ฌ ๋ฒ ์ด๊ธฐํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์ ๊ธ ์ฅ์น | |
init_lock = threading.Lock() | |
simulation_initialized = False | |
# ํน์ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ๊ฑธ๋ฌ๋ด๊ธฐ ์ํ ํํฐ ํด๋์ค | |
class LogFilter(logging.Filter): | |
def filter(self, record): | |
# /api/world_state ๊ฒฝ๋ก์ ๋ํ ๋ก๊ทธ๋ ๊ธฐ๋กํ์ง ์์ | |
if "/api/world_state" in record.getMessage(): | |
return False | |
if "/api/npc_details" in record.getMessage(): | |
return False | |
if "/api/toggle_simulation" in record.getMessage(): | |
return False | |
return True | |
def create_app(): | |
"""Flask ์ฑ์ ์์ฑํ๊ณ , ํ์ํ Blueprint๋ฅผ ๋ฑ๋กํ๋ ํฉํ ๋ฆฌ ํจ์.""" | |
app = Flask(__name__, | |
template_folder='templates') # static/template ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ณธ๊ฐ | |
try: | |
from npc_social_network.routes.npc_route import npc_bp | |
app.register_blueprint(npc_bp) | |
print("โ 'npc_social' Blueprint๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ฑ๋ก๋์์ต๋๋ค.") | |
# app.register_blueprint(stock_bp) | |
except Exception as e: | |
import traceback | |
print("="*60) | |
print("โ CRITICAL ERROR: Blueprint ๋ฑ๋ก ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค!") | |
print(f" ์๋ฌ ๋ฉ์์ง: {e}") | |
print("="*60) | |
traceback.print_exc() # ์๋ฌ์ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํฉ๋๋ค. | |
print("="*60) | |
return app | |
if __name__ == '__main__': | |
# 1. flask ์ฑ ์คํ | |
app = create_app() | |
# Flask ์ฑ์ด ์คํ๋๊ธฐ ์ ์ ๋ก๊ทธ ํํฐ๋ฅผ ์ ์ฉํฉ๋๋ค. | |
log = logging.getLogger('werkzeug') | |
log.addFilter(LogFilter()) | |
# use_reloader=False๋ ๋๋ฒ๊ทธ ๋ชจ๋์์ ์ฑ์ด ๋ ๋ฒ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ, | |
# ์๋ฎฌ๋ ์ด์ ์ค๋ ๋๊ฐ ๋ ๋ฒ ์์๋์ง ์๋๋ก ํฉ๋๋ค. | |
app.run(host='0.0.0.0', port=int(os.environ.get("PORT", 7860))) |