这是一个创建于 3751 天前的主题,其中的信息可能已经有所发展或是发生改变。
可能标题有点不清楚,详细解释如下:
一个数据库有三张表。一张表存贮主分类,第二张子分类,第三张存文章。顺序是一对多。即一个主分类对应多个子分类,一个子分类又对应多个文章。
想知道如何写Query语句,能够查询出一个主分类下的所有子分类,以及某个子分类下的所有文章。
比如在做导航栏的时候,希望能用一个数据结构查出所有主分类,以及各自的子分类。这样传递到模板里用for循环即可。
数据表的结构大概如下:
class MainLevel(db.Model):
__tablename__ = 'mainlevel'
"""主分类的数据模型"""
id = db.Column(db.Integer, primary_key=True)
# 显示的名称
name = db.Column(db.String(50))
# 英文名称
name_en = db.Column(db.String(50))
# url上的名称
slug = db.Column(db.String(50), unique=True)
# 主导航下拉菜单下的图片地址
image_url = db.Column(db.String(100))
# 显示顺序
show_order = db.Column(db.Integer)
# 创建日期
create_date = db.Column(db.DateTime)
sublevel = db.relationship('SubLevel', backref='mainlevel', lazy='dynamic')
def __repr__(self):
return '<名称:%s>' % self.name
class SubLevel(db.Model):
__tablename__ = 'sublevel'
"""子分类的数据类型"""
id = db.Column(db.Integer, primary_key=True)
# 显示的名称
name = db.Column(db.String(50))
# 英文名称
name_en = db.Column(db.String(50))
# url上的名称
slug = db.Column(db.String(50), unique=True)
# 显示顺序
show_order = db.Column(db.Integer)
# 创建日期
create_date = db.Column(db.DateTime)
# 与Main Level的关系
mainlevel_id = db.Column(db.Integer, db.ForeignKey('mainlevel.id'))
def __repr__(self):
return '<名称:%s>' % self.name
谢谢!