rorshi's picture
์—๋Ÿฌ ๋ฐœ์ƒ์œผ๋กœ ์‹คํ–‰ ๋ถˆ๊ฐ€
6fe0d0c
raw
history blame
2.71 kB
# 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
# -------------------------------------------------------------------
# ํŒŒ์ผ 1: portfolio/app.py (์ˆ˜์ •)
# ์—ญํ• : ์ „์ฒด ํฌํŠธํด๋ฆฌ์˜ค์˜ ์ง„์ž…์ .
# NPC ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ , ๊ด€๋ จ URL ๊ทธ๋ฃน(Blueprint)์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
# -------------------------------------------------------------------
# ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ดˆ๊ธฐํ™”๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ž ๊ธˆ ์žฅ์น˜
init_lock = threading.Lock()
simulation_initialized = False
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)
# ์ด ์—๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ์„œ๋ฒ„๋Š” ์ •์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
# --- FINAL DEBUGGING TOOL END ---
# ํฌํŠธํด๋ฆฌ์˜ค์˜ ๋ฉ”์ธ ๋žœ๋”ฉ ํŽ˜์ด์ง€
@app.route("/")
def index():
return render_template("main.html")
return app
if __name__ == '__main__':
# 1. flask ์•ฑ ์‹คํ–‰
app = create_app()
# 2. NPC ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ดˆ๊ธฐํ™” ๋ฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ ์‹œ์ž‘
try:
from npc_social_network import simulation_core
simulation_core.initialize_simulation()
print("โœ… ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
except Exception as e:
import traceback
print("="*60)
print("โŒ CRITICAL ERROR: ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ดˆ๊ธฐํ™” ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค!")
print(f" ์—๋Ÿฌ ๋ฉ”์‹œ์ง€: {e}")
print("="*60)
traceback.print_exc()
print("="*60)
# 3. Flask ์›น ์„œ๋ฒ„ ์‹คํ–‰
# use_reloader=False๋Š” ๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ ์•ฑ์ด ๋‘ ๋ฒˆ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ,
# ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋‘ ๋ฒˆ ์‹œ์ž‘๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
app.run(debug=True, use_reloader=False, port=5000)