init_data.py 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. import os
  2. import pandas as pd
  3. from app import db
  4. from app.models.dimension import CandleInfo
  5. def init_candle_info():
  6. """
  7. 初始化K线形态信息表
  8. 如果表为空,则从CSV文件导入数据
  9. """
  10. # 检查表是否为空
  11. if CandleInfo.query.first() is None:
  12. # 获取CSV文件的绝对路径
  13. csv_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'app', 'config', 'candle_info.csv')
  14. # 读取CSV文件
  15. df = pd.read_csv(csv_path)
  16. # 遍历数据并插入到数据库
  17. for _, row in df.iterrows():
  18. if pd.notna(row['name']): # 只插入name不为空的记录
  19. candle = CandleInfo(
  20. id=row['id'],
  21. name=row['name']
  22. )
  23. db.session.add(candle)
  24. try:
  25. db.session.commit()
  26. print("K线形态数据初始化成功")
  27. except Exception as e:
  28. db.session.rollback()
  29. print(f"K线形态数据初始化失败: {str(e)}")