一对多:
说明:User表用来存用户,artcle用来存文章
关系:文章的author_id引入user表id字段作为外键
class User(db.Model):
__tablename__ = 'user_table'
id = db.Column(db.Integer,primary_key=True)
username = db.Column(db.String(10),unique=True)
password = db.Column(db.String(16))
class artcle(db.Model):
__tablename__ = 'artcle_table'
id = db.Column(db.Integer,primary_key=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text(),nullable=False)
author_id = db.Column(db.Integer,db.ForeignKey('user_table.id'))
authors = db.relationship('User',backref=db.backref('artcles'))
通过文章标题找到文章作者:
artcle_data = artcle.query.filter(artcle.title=='标题').first()
return artcle_data.authors.username
通过作者查找他的文章:
user = User.query.filter(User.username == 'ma').first()
return user.artcles
多对多:
说明:文章和标签的关系,一篇文章可以有多个标签,一个标签也可以对应多篇文章
实现:增加一个中间表
文章表:
class Artcles(db.Model):
__tablename__ = 'Artcles'
id = db.Column(db.Integer,primary_key=True)
title = db.Colnum(db.Model,nullable=False)
标签表:
class tags(db.Model):
__tablename__ = 'tags'
id = db.Column(db.Integer,primary_key=True)
name = db.Colnum(db.Model,nullable=False)
中间表:
artcle_tags = db.Table('artcle_tags',
db.Column('artcle_id',db.Integer,db.ForeignKey('Artcles.id'))
db.Column('tags_id',db.Integer,db.ForeignKey('tags.id'))
)
Flask数据库设计
猜你喜欢
转载自blog.csdn.net/weixin_38639882/article/details/82144990
今日推荐
周排行