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抓取模板之家的CSS模板
Mar 16 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
Python2中文处理纪要的实现方法
Mar 10 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
详解Python3 中的字符串格式化语法
Jan 15 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
Python sys模块常用方法解析
Feb 20 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中使用Oracle数据库(3)
2006/10/09 PHP
一个PHP分页类的代码
2011/05/18 PHP
PHP 透明水印生成代码
2012/08/27 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
以windows service方式运行Python程序的方法
2015/06/03 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
计算机专业优秀大学生自我总结
2014/01/21 职场文书
优秀教师获奖感言
2014/01/31 职场文书
高中军训感言400字
2014/02/24 职场文书
化工操作工岗位职责
2014/04/29 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
python实现简单聊天功能
2021/07/07 Python