feat: 初始提交 v1.2.0 - 钢琴练习方案生成系统
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Piano Practice Plan System - Entry Point
|
||||
|
||||
import os
|
||||
import sys
|
||||
import pathlib
|
||||
|
||||
# 修复Windows控制台编码
|
||||
if sys.platform == "win32":
|
||||
import io
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
|
||||
|
||||
# 修复工作目录 - 确保项目根目录正确
|
||||
PROJECT_ROOT = pathlib.Path(__file__).resolve().parent
|
||||
sys.path.insert(0, str(PROJECT_ROOT))
|
||||
os.chdir(PROJECT_ROOT)
|
||||
|
||||
print(f"[INFO] Project root: {PROJECT_ROOT}")
|
||||
print(f"[INFO] Working directory: {os.getcwd()}")
|
||||
|
||||
from app import create_app
|
||||
|
||||
app = create_app()
|
||||
|
||||
if __name__ == "__main__":
|
||||
is_prod = os.environ.get("FLASK_ENV") == "production"
|
||||
print("=" * 50)
|
||||
print("Piano Practice Plan System")
|
||||
print("=" * 50)
|
||||
print("Access: http://127.0.0.1:5001")
|
||||
print(f"Debug: {not is_prod}")
|
||||
print("=" * 50)
|
||||
if is_prod:
|
||||
print("Using gunicorn")
|
||||
import gunicorn.app.base
|
||||
class Application(gunicorn.app.base.Application):
|
||||
def init(self, parser, opts, args):
|
||||
self.cfg.set('bind', '0.0.0.0:5001')
|
||||
self.cfg.set('workers', 1)
|
||||
self.cfg.set('worker_class', 'sync')
|
||||
self.cfg.set('timeout', 60)
|
||||
def load(self):
|
||||
return app
|
||||
Application().run()
|
||||
else:
|
||||
app.run(host="0.0.0.0", port=5001, debug=True, use_reloader=False)
|
||||
Reference in New Issue
Block a user