Q: 数据库增删改查的逻辑如何实现?
【回到目录】~~~~【回到问题集】
Q: 数据库增删改查的逻辑如何实现?
A: 使用的是Flask 框架的 SQLAlchemy,models/dataset.py文件定义了数据库表实体类,下面以 查询知识库的文档分段为例:
在dataset.py文件定义了数据库实体类DocumentSegment
class DocumentSegment(db.Model): # type: ignore[name-defined]__tablename__ = "document_segments"__table_args__ = (db.PrimaryKeyConstraint("id", name="document_segment_pkey"),db.Index("document_segment_dataset_id_idx", "dataset_id"),db.Index("document_segment_document_id_idx", "document_id"),db.Index("document_segment_tenant_dataset_idx", "dataset_id", "tenant_id"),db.Index("document_segment_tenant_document_idx", "document_id", "tenant_id"),db.Index("document_segment_node_dataset_idx", "index_node_id", "dataset_id"),db.Index("document_segment_tenant_idx", "tenant_id"),)
controllers/console/dataset/datasets_segments.py - DatasetDocumentSegmentListApi() 提供接口访问服务,操作数据库的逻辑如下:
query = DocumentSegment.query.filter( <-- 这里定义Flask框架的 query 查询对象DocumentSegment.document_id == str(document_id), DocumentSegment.tenant_id == current_user.current_tenant_id).order_by(DocumentSegment.position.asc())
。。。一大堆条件筛选。。。
segments = query.paginate(page=page, per_page=limit, max_per_page=100, error_out=False) <-- 这里根据分页信息提取信息
本文结束
【回到目录】~~~~【回到问题集】