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求两个list的差集、交集与并集的方法
Nov 01 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
基于python内置函数与匿名函数详解
Jan 09 Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 Python
python实现键盘控制鼠标移动
Nov 27 Python
python实践项目之监控当前联网状态详情
May 23 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
Python获取对象属性的几种方式小结
Mar 12 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python实现Hash算法
Mar 18 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
jQuery autocomplete插件修改
2009/04/17 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
vuejs如何配置less
2017/04/25 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
python连接mysql实例分享
2016/10/09 Python
Python 自动化表单提交实例代码
2017/06/08 Python
Python封装原理与实现方法详解
2018/08/28 Python
python实现合并两个排序的链表
2019/03/03 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
2014超市双十一活动策划方案
2014/09/29 职场文书
中国世界遗产导游词
2015/02/13 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
Redis可视化客户端小结
2021/06/10 Redis
Flask response响应的具体使用
2021/07/15 Python
Python中requests库的用法详解
2022/06/05 Python