IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2021-9-29 flask_sqlalchemy数据库的外键与连接 -> 正文阅读

[Python知识库]2021-9-29 flask_sqlalchemy数据库的外键与连接

这个flask_sqlalchemy的外键是实现表与表的关联的,分为两个层面

  1. 数据库里边存上关联项
  2. 在程序的模型逻辑上简化实现表连接。

下面这个程序是利用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里的内容存在才能建立 这个小写的user是数据库里边的表名不是模型类名!
    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) #举例用3号ID查出一个user行
for article in user.articles:
	article.id#那就可以用这个user。articles查出Article表的对应项
	article.title # 这个article就是被钩子勾过来的Article的查询结果具体行

####反向引用,就是用多的Article一方查出单独一行后可以点user反找其他项目,注意:下面的user是数据库中的表名不是模型的类名
articles = Article.query.all()
for article in articles:
	 article.title
	 article.user.username
	 article.user.phone

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:53:45  更:2021-09-30 11:55:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:51:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码