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检测手机QQ在线状态的脚本代码
Feb 10 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
JPype实现在python中调用JAVA的实例
Jul 19 Python
浅谈Python中eval的强大与危害
Mar 13 Python
python动态进度条的实现代码
Jul 03 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
Sep 30 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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设计模式 Bridge (桥接模式)
2011/06/26 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
php上传图片类及用法示例
2016/05/11 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
javascript document.compatMode兼容性
2010/02/23 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
python解析xml文件实例分享
2013/12/04 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python如何执行系统命令
2020/09/23 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
《姥姥的剪纸》教学反思
2014/02/25 职场文书
婚礼司仪主持词
2014/03/14 职场文书
孔庙导游词
2015/02/04 职场文书
社区母亲节活动总结
2015/02/10 职场文书
责任书范本大全
2015/05/11 职场文书
从事会计工作年限证明
2015/06/23 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python