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文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
Python实现读取文件最后n行的方法
Feb 23 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
Jul 11 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
Python进行特征提取的示例代码
Oct 15 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下使用SMTP发邮件的代码
2008/01/10 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
Python中的面向对象编程详解(下)
2015/04/13 Python
Python检测QQ在线状态的方法
2015/05/09 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
什么是GWT的Module
2013/01/20 面试题
学校介绍信范文
2014/01/14 职场文书
房产公证书范本
2014/04/10 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
七一晚会主持词
2015/06/29 职场文书
创业计划书之养殖业
2019/10/11 职场文书