python flask 多对多表查询功能


Posted in Python onJune 25, 2017

我们在flask的学习中,会难免遇到多对多表的查询,今天我也遇到了这个问题。那么我想了好久。也没有想到一个解决的办法,试了几种方法,可能是思路的限制我放弃了,后来,我就在网上百度,可是发现百度出来的结果和自己想要的还有一定的差距,那么我根据百度上得来的思路,那么我也对我的数据结构进行了探索, 下面来看看我这里怎么来查询的,首先给大家看下我写的数据库的代码的片段,这样,加深理解。

post_class=db.Table('post_class',
  db.Column('post_id',db.Integer(),db.ForeignKey('posts.id')),
  db.Column('classifa_id',db.Integer(),db.ForeignKey('fenlei.id')))
class Post(db.Model):#文章表
  __tablename__='posts'
  id=db.Column(db.Integer,primary_key=True,autoincrement=True)
  title=db.Column(db.String(255),unique=True)
  text=db.Column(db.Text())
  publish_date=db.Column(db.DateTime,default=datetime.datetime.now())
  user_id=db.Column(db.Integer,db.ForeignKey('users.id'))
  is_recomment=db.Column(db.Boolean,default=False)
  comments = db.relationship(
    'Comment',
    backref='posts',
    lazy='dynamic')
  tag = db.relationship(
    'Tag',
    secondary=posts_tags,
    backref=db.backref('posts', lazy='dynamic')
  )
  classname=db.relationship('Classifa',
    secondary=post_class,
    backref=db.backref('posts'))
  def __repr__(self):
    return "<Model Post `{}`>".format(self.title)
class Classifa(db.Model):#分类
  __tablename__='fenlei'
  id=db.Column(db.Integer(),primary_key=True)
  name=db.Column(db.String(64))
  def __repr__(self):
    return self.name

这里有三张表,一张呢是文章的列表,另一张呢,是分类表,我们来想下,一篇文章可能同时属于多个分类,那么一个分类可能也属于多个文章,这么来说想必我们大家都能理解这个逻辑,那么呢,我第三表来显示多对多关系的,那么我们接下来怎么去查询呢,其实我现在的需求就是我要找个一个分类下面所有的文章吧,

下面来看看我的代码

data=Classifa.query.filter_by(name='数据库').first()
 data_post=data.posts

这里呢,我直接先从分类找到这个分类,然后通过第三表来查询属于这个分类的文章、其实呢 这里很简单,可能是我当时自己的脑子短路了吧, 不知道怎么想是对的,现在来看 其实还是那么的简单,只是当时我忽略了什么。    加油,学习前进的路上。

Python 相关文章推荐
Python脚本实现12306火车票查询系统
Sep 30 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
pytorch 修改预训练model实例
Jan 18 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
Python之字典添加元素的几种方法
Sep 30 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 Python
Python的语言类型(详解)
Jun 24 #Python
Python队列的定义与使用方法示例
Jun 24 #Python
Python实现字符串逆序输出功能示例
Jun 24 #Python
Python正则表达式分组概念与用法详解
Jun 24 #Python
Python正则表达式常用函数总结
Jun 24 #Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 #Python
Python实现的爬虫功能代码
Jun 24 #Python
You might like
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
第五章 php数组操作
2011/12/30 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python读取网页内容的方法
2015/07/30 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Django视图和URL配置详解
2018/01/31 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
优秀团员个人的自我评价
2013/10/02 职场文书
商务助理岗位职责
2013/11/13 职场文书
品质主管岗位职责
2014/03/16 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
大学生受助感言
2015/08/01 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏
Python Flask实现进度条
2022/05/11 Python