Build a CRUD App with SQLAlchemy - Foreign Key Constraint Setup
2021/11/26 19:10:29
本文主要是介绍Build a CRUD App with SQLAlchemy - Foreign Key Constraint Setup,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
db.relationship
- Allows SQLAlchemy to identify relationships between models
- Links relationships with backrefs (child1.some_parent)
- Configures relationship dynamics between parents and children
- db.relationship does not set up foreign key constraints for you. We need to add a column, some_parent_id, on the child model that has a foreign key constraint
- Whereas we set db.relationship on the parent mode, we set the foreign key constraint on the child model.
- A foreign key constraint prefers referential integrity from one table to another, by ensuring that the foreign key column always maps a primary key in the foreign table.
CREATE TABLE vehicles ( id INTEGER PRIMARY KEY, make VARCHAR NOT NULL, model VARCHAR NOT NULL, year INTEGER NOT NULL, driver_id REFERENCES drivers(id) )
driver_id maps to an id that belongs in the drivers table.
driver_id is nonempty
db.ForeignKey
- Option in db.column to specify a foreign key constraint, referring to the primary key of the other table / model
- Gets defined on the Child model
class SomeParent(db.Model): __tablename__ = 'some_parents' id = db.Column(db.Integer, primary_key=True) ... class SomeChild(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False) #some_parents.id: Maps to parent table's primary key # format: {parent tablename}.{parent primary key column name} some_parent_id = db.Column(db.Integer, db.ForeignKey('some_parents.id'), nullable=False)
SQLAlchemy foreign keys Docs
这篇关于Build a CRUD App with SQLAlchemy - Foreign Key Constraint Setup的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享