修改数据获取,确保json文件完整获取

This commit is contained in:
YueL1331
2026-01-08 14:26:34 +08:00
parent a5b0b71d26
commit a8984a156c
9 changed files with 304 additions and 479 deletions

View File

@ -1,9 +1,10 @@
# app.py
import os
import sys
from flask import Flask, jsonify
from flask_cors import CORS
from models import db, Device, DeviceHistory, MaintenanceLog
from routes.api import api_bp # 从 api.py 导入蓝图
from flask import Flask
from extensions import db, cors # ✅ 从 extensions 导入
from models import Device, DeviceHistory, MaintenanceLog # 导入模型以便 SQLAlchemy 识别
from routes.api import api_bp
# 解决 Windows 下控制台输出乱码问题
sys.stdout.reconfigure(encoding='utf-8')
@ -12,43 +13,37 @@ sys.stdout.reconfigure(encoding='utf-8')
def create_app():
app = Flask(__name__)
# 1. 配置数据库路径
# 1. 配置路径
basedir = os.path.abspath(os.path.dirname(__file__))
# 👇👇👇 核心修复:自动创建 instance 文件夹 👇👇👇
instance_path = os.path.join(basedir, 'instance')
if not os.path.exists(instance_path):
os.makedirs(instance_path)
print(f"📁 检测到目录不存在,已自动创建: {instance_path}")
# 👆👆👆 修复结束 👆👆👆
db_path = os.path.join(instance_path, 'devices.db')
# 配置 SQLite URI
# 配置
app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{db_path}'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['JSON_AS_ASCII'] = False # 支持中文返回
app.config['JSON_AS_ASCII'] = False
# 2. 初始化插件
CORS(app) # 允许跨域
db.init_app(app)
# 2. 初始化插件 (使用 init_app 模式)
cors.init_app(app) #
db.init_app(app) # ✅
# 3. 注册蓝图 (Blueprints)
# 3. 注册蓝图
# 注意api.py 里已经写了 url_prefix='/api',这里不要再写,否则变 /api/api/...
app.register_blueprint(api_bp)
# 4. 初始化数据库表
with app.app_context():
# 尝试创建所有表
db.create_all()
# print(f"✅ 数据库连接成功: {db_path}")
return app
# 5. 提供 Flask Shell 上下文(方便命令行调试)
app = create_app()
@app.shell_context_processor
def make_shell_context():
return {
@ -58,8 +53,6 @@ def make_shell_context():
'MaintenanceLog': MaintenanceLog
}
if __name__ == '__main__':
# 启动应用
print("🚀 服务正在启动: http://127.0.0.1:5000")
app.run(debug=True, host='0.0.0.0', port=5000)