Python ORM Bee 多表查询
1. 实体模型
from typing import List, Dict, Type, Any
from bee.bee_enum import JoinType
from bee.typing import JoinMeta
# from enum import Enum
# class JoinType(Enum):
# JOIN = "JOIN"
# LEFT_JOIN = "LEFT JOIN"
# RIGHT_JOIN = "RIGHT JOIN"
#
#
# # 说明:你给出的 JoinMeta 和模型定义保持不变
# class JoinMeta:
#
# def __init__(self, sub_class, joinType:JoinType, main_fields: List[str], sub_fields: List[str]):
# self.sub_class = sub_class
# self.joinType = joinType
# self.main_fields = main_fields
# self.sub_fields = sub_fields
class Teacher:
classno = None
term = None
subjectno = None
class Assigncourse:
teacherno = None
class Assignexam:
classno = None
term = None
subjectno = None
examno = None
status = None
teacherno = None
# 子表对象
assigncourse = None
teacher = None
__joins__ = {
"assigncourse": JoinMeta(
sub_class = Assigncourse,
joinType = JoinType.JOIN,
main_fields = ["classno", "term", "subjectno"],
sub_fields = ["classno", "term", "subjectno"],
),
"teacher": JoinMeta(
sub_class = Teacher,
joinType = JoinType.LEFT_JOIN,
main_fields = ["teacherno"],
sub_fields = ["teacherno"],
),
}
2. 查询多表数据
if __name__ == '__main__':
print("start")
MyConfig.init()
assignexam=Assignexam()
assignexam.name='Test'
moretable = BF.moreTable()
teaList = moretable.select(assignexam)
3. 评价
确得以上API如何? 是不是简单易用。
要是还有什么更加简易的API,请在API留言!
119

被折叠的 条评论
为什么被折叠?



