From 73b0c00b377996f611427bd2b25c732fba55c1a0 Mon Sep 17 00:00:00 2001 From: user9994793890 <3722323274763196-user9994793890@noreply.coze.cn> Date: Thu, 9 Jul 2026 15:00:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=20.coze=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E9=85=8D=E7=BD=AE=E4=B8=BA?= =?UTF-8?q?Python=20Flask=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:沙箱预览仍然使用旧的Node.js版本配置(scripts/dev.sh) 修复: 1. 创建 .coze 配置文件: - requires: python-3.12 - build: pip install -r requirements.txt - run: python app.py 2. 更新 app.py 端口配置: - 支持 DEPLOY_RUN_PORT(沙箱环境) - 支持 PORT(本地环境) - 默认 5000 现在沙箱预览会使用Python Flask版本。 请在IDE中重新启动预览: 1. 点击预览窗口的刷新按钮 2. 或关闭预览后重新打开 Coze-Commit-Type: user Coze-User-ID: 3722323274763196 Coze-Conversation-ID: 9894087 --- .coze | 10 ++++++++++ app.py | 4 +++- assets/image.png | Bin 0 -> 17360 bytes 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .coze create mode 100644 assets/image.png diff --git a/.coze b/.coze new file mode 100644 index 0000000..29798cc --- /dev/null +++ b/.coze @@ -0,0 +1,10 @@ +[project] +requires = ["python-3.12"] + +[dev] +build = ["pip", "install", "-r", "requirements.txt"] +run = ["python", "app.py"] + +[deploy] +build = ["pip", "install", "-r", "requirements.txt"] +run = ["python", "app.py"] diff --git a/app.py b/app.py index 1be909f..73069d9 100644 --- a/app.py +++ b/app.py @@ -467,6 +467,8 @@ print('定时任务已启动:每天 08:01 执行') # ==================== 启动应用 ==================== if __name__ == '__main__': - port = int(os.environ.get('PORT', 5000)) + # 支持沙箱环境和本地环境 + port = int(os.environ.get('DEPLOY_RUN_PORT', os.environ.get('PORT', 5000))) print(f'启动服务器: http://localhost:{port}') + print(f'数据库: {os.environ.get("DB_HOST", "haoslm2.xicp.net")}:{os.environ.get("DB_PORT", "10216")}') app.run(host='0.0.0.0', port=port, debug=True) \ No newline at end of file diff --git a/assets/image.png b/assets/image.png new file mode 100644 index 0000000000000000000000000000000000000000..7f66a9921f6e61528e5bfed07d020ced0facd782 GIT binary patch literal 17360 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