humanda5
Complete step 20: ๋ชจ๋“  ์—๋Ÿฌ ์ˆ˜์ • ์™„๋ฃŒ
a88e1d8
raw
history blame
1.57 kB
# portfolio/app.py
from flask import Flask, render_template, url_for, redirect
from npc_social_network.routes.npc_route import npc_bp
# from stock.routes.stock_route import stock_bp
import os
import subprocess
# ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•  ์ „์—ญ ๋ณ€์ˆ˜
simulation_process = None
def create_app():
app = Flask(__name__) # static/template ๊ฒฝ๋กœ๋ฅผ ๊ธฐ๋ณธ๊ฐ’
# ๊ฐ ํ”„๋กœ์ ํŠธ๋Š” Blueprint์—์„œ ์ž๊ธฐ static/template ๊ด€๋ฆฌ
app.register_blueprint(npc_bp)
# app.register_blueprint(stock_bp)
@app.route("/")
def index():
return render_template("main.html")
@app.route("/run_npc_simulation")
def run_npc_simulation():
global simulation_process
# ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ์ข…๋ฃŒ
if simulation_process and simulation_process.poll() is None:
simulation_process.terminate()
simulation_process.wait()
# ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ์˜ ์‹คํ–‰ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ
python_exec = "python"
# ๋น„๋™๊ธฐ๋กœ Pygame ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹คํ–‰
subprocess.Popen([python_exec, "-m", "npc_social_network.maps.villages.town_hall"]) # ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰ (์ฐฝ ๋„์›€)
# ์‹คํ–‰ ํ›„ ์‚ฌ์šฉ์ž ์•ˆ๋‚ด ํŽ˜์ด์ง€ ํ‘œ์‹œ
return redirect(url_for('npc_social.home'))
return app
if __name__ == '__main__':
app = create_app()
print("[MAIN] Starting Flask app only (Background NPC interactions handled by separate runner).", flush=True)
app.run(debug=True, use_reloader=False)