1、创建模型的时候做外键关联

class UI_ID(db.Model):
__tablename__ = 'ui_id'
id = db.Column(INTEGER(11), primary_key=True, comment='id')
id_path = db.Column(INTEGER(11), comment='路径地址')
id_name = db.Column(db.String(255), comment='id名称,可以不填写,由系统生成')
id_model = db.Column(INTEGER(11), ForeignKey(
"project_modules.id"), comment='所属模块')
mk_user = db.Column(INTEGER(11), ForeignKey(
"user.userid"), comment='创建人')
mk_time = db.Column(DateTime, comment='创建时间')
up_time = db.Column(DateTime, comment='更新时间')
id_pro = db.Column(db.String(255), comment='ID 描述') module = db.relationship(
'Project_modules', backref='moduleid_fo_pro_module')
user1 = db.relationship(
'User', primaryjoin='UI_ID.mk_user == User.userid')

  主要使用到两个函数  ForeignKey、relationship 。ForeignKey是注明要关联的表以及关联的列,relationship是与关联表做一个映射关系

2、自关联表结构

class Project_modules(db.Model):
__tablename__ = 'project_modules'
id = db.Column(INTEGER(11), primary_key=True, comment='模块ID')
p_id = db.Column(INTEGER(11), comment='项目ID')
name = db.Column(db.String(255), comment='模块名称')
father_id = db.Column(INTEGER(11), ForeignKey(
'project_modules.id'), comment='父级ID')
mk_user = db.Column(db.String(255), comment='创建人')
mk_time = db.Column(DateTime, comment='创建时间')
up_time = db.Column(DateTime, comment='更新时间') module = db.relationship(
'Project_modules', remote_side=[id], backref='module_fo_module')

  创建方式与外键关联区别不大、只是在relationship函数内增加了一个remote_side=[id]的字段,意思是标明当前表的哪一列

3、多对多:

待续。。。。

关联表的查询方式: ##############看不懂拉到,反正也是我自己看

最新文章

  1. WCF X.509验证
  2. jquery 控件赋值
  3. thinkphp在模型中自动完成session赋值
  4. 第一篇博文:PHP函数原型中的可选参数写法为什么这么写?
  5. 【linux】/dev/null与/dev/zero详解【转】
  6. error C2143 & error C4430
  7. VS2008一个小bug
  8. 已有 JS 模块化和打包方案收集
  9. Selenium 新窗口处理方法
  10. MongoDb在windows下的安装与以auth方式启用服务
  11. SSH下authorized_keys, id_rsa, id_rsa.pub, known_hosts作用
  12. freeswitch 显示主叫名称和主叫号码
  13. html 中使用 iconfont、fontAwesome
  14. java控制语句 if-else while do-while for return break continue goto switch default
  15. GridView中CheckBox翻页记住选项
  16. 用Visual Studio2017写C++静态库
  17. Karma和Jasmine自动化单元测试
  18. Rust笔记
  19. 如何判断SSD盘
  20. linux之JDK安装

热门文章

  1. Nebula 2.5.0安装过程及遇到的坑
  2. UDP与TCP的对比
  3. 【转】 C#中检查网络是否连通的二种方法
  4. 如何在github上传本地项目代码
  5. C++ 计算MD5
  6. 寻找最短路径Dijkstra算法
  7. IT项目经理-成长手记学习笔记
  8. 发布日志 - kratos v2.0.5 版本发布
  9. 浅谈可持久化Trie与线段树的原理以及实现(带图)
  10. Djangoform组件——ModelForm的基本使用