flask rom外键操作数据库
定义表
class User(db.Model):
__tablename__ = "user"
# 表中的一个字段的定义
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(100), nullable=False)
class Article(db.Model):
__tablename__ = "article"
# 定义一个文章表
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(200), nullable=False)
content = db.Column(db.Text, nullable=False)
# 设置外键最简单的一种方法
author_id = db.Column(db.Integer, db.ForeignKey("user.id"))
author = db.relationship("User", backref="articles")
原来没有表
添加了表,并添加了外键
通过外键关联到user表中的id
定义函数
@app.route("/article/add")
def article_add():
article1 = Article(title="菜鸡学Flask", content="千里之行始于足下,玄奘西天取经也是千难万险,出国门的时候还是一人一匹马偷渡出国的。")
article1.author = User.query.get(1)
article2 = Article(title="菜鸡学网络安全", content="又菜又爱玩")
article2.author = User.query.get(1)
# 一次性添加多条数据
db.session.add_all([article1, article2])
db.session.commit()
return "数据添加成功,文章添加成功!"
# 模型映射到数据库中,字段改变
@app.route("/article/query")
def article_query():
# 通过user对象查询该user下面的所有对象
user = User.query.get(1)
for article in user.articles:
print(article.title)
return "通过user对象查询该user下面的所有对象,已查询完成"
通过外键添加到数据库中
通过外键查询用户下面所有的文章