from sqlalchemy import create_engine, Column, Integer, String, ForeignKey from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship import os from cppy.cp_util import db_filename # 定义数据模型和数据库连接 Base = declarative_base() # 获取当前文件所在的目录 current_dir = os.path.dirname(os.path.abspath(__file__)) # 构造数据库文件的完整路径 db_file_path = os.path.join(current_dir, db_filename) DATABASE_URI = f"sqlite:///{db_file_path}" # 创建数据库引擎 engine = create_engine(DATABASE_URI, echo=True) class TextFile(Base): __tablename__ = 'text_files' id = Column(Integer, primary_key=True) filepath = Column(String, unique=True) content = Column(String) words = relationship("WordFrequency", back_populates="textfile") class WordFrequency(Base): __tablename__ = 'word_frequencies' id = Column(Integer, primary_key=True) word = Column(String) frequency = Column(Integer) textfile_id = Column(Integer, ForeignKey('text_files.id')) textfile = relationship("TextFile", back_populates="words") if __name__ == '__main__': # 检查数据库文件是否存在 if os.path.exists(db_file_path): os.remove(db_file_path) Base.metadata.create_all(engine)