这个flask_sqlalchemy的外键是实现表与表的关联的,分为两个层面
- 数据库里边存上关联项
- 在程序的模型逻辑上简化实现表连接。
下面这个程序是利用db.ForeignKey('user.id') 在数据库里边建立外键,一般都是多的一方建立这个外键。并且这个外键在数据库中是有字段的,也是可以查到的。
from exps import db
class Article (db.Model):
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title =db.Column(db.String(50),nullable=False)
user_id = db.Column(db.Integer,db.ForeignKey('user.id'),nullable=False)
而这几行程序关键是:db.relationship('Article',backref ='user' ) ,他的存在是在模型类上实现表关联逻辑,数据库中无痕迹。
from exps import db
class User(db.Model):
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
username = db.Column(db.String(15),nullable=False)
articles =db.relationship('Article',backref ='user' )
使用的时候:
user = User.query.get(3)
for article in user.articles:
article.id
article.title
articles = Article.query.all()
for article in articles:
article.title
article.user.username
article.user.phone
|