python flask 多对多表查询功能
作者:北漂的雷子 发布时间:2022-09-17 13:26:14
标签:python,flask,多对多查询
我们在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
这里呢,我直接先从分类找到这个分类,然后通过第三表来查询属于这个分类的文章、其实呢 这里很简单,可能是我当时自己的脑子短路了吧, 不知道怎么想是对的,现在来看 其实还是那么的简单,只是当时我忽略了什么。 加油,学习前进的路上。
来源:http://www.cnblogs.com/leiziv5/archive/2017/06/24/7074634.html


猜你喜欢
- 该组件基于技术栈,主要涉及vue-cli生成的webpack项目脚手架,在此脚手架项目基础上完成的,整合了element-ui开源vue的U
- 异步 innerHTMLinnerHTML 插入节点的性能的问题,通常是我们最关注的。在回答这问题时,James Padolsey 给出了他
- 朋友需要一个工具,将图片中的文字提取出来。我帮他在网上找了一些OCR的应用,都不好用。所以准备自己研究,写一个Web APP供他使用。OCR
- 本文实例为大家分享了python实现递归查找某个路径下所有文件中的中文字符,供大家参考,具体内容如下# -*- coding: utf-8
- 每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)、wx.getStorage
- bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
- 概述在日常工作生活中,都是利用个人或公司的邮箱客户端进行收发邮件,那么如何打造一款属于自己的邮箱客户端呢?本文以一个简单的小例子,简述如何通
- 本文实例为大家分享了python实现人机对战井字棋的具体代码,供大家参考,具体内容如下游戏简介:在九宫格内进行,如果一方抢先于另一方向(横、
- truncate table 表名 ( 数据不可恢复性的删除 truncate 标识列会重排 ) LinqUtil.Db.ExecuteCo
- 问题背景周一上班,首先向同事了解了一下上周的测试情况,被告知在多实例场景下 MySQL Server hang 住,无法测试下去,原生版本不
- Django crontab定时任务安装pip install django-crontab配置在settings.py中 INSTALLE
- bitbucket 搭建搭建过程如下所示:1 jdk 8如果有的话就不用安装了,此处采用rpm方式安装(不用配置环境变量)把下载好的文件放在
- 一、安装1、安装easy_install工具wget http://peak.telecommunity.com/dist/ez_setup
- 本文以实例形式讲述了Python中replace方法,很有实用价值,具体如下:replace方法主要有两种:last_date = &quo
- 引言:Python中的变量在使用中很流畅,可以不关注类型,任意赋值,对于开发来说效率得到了提升,但若不了解其中的机理,往往也会犯一些小错,让
- 昨天在用用Pycharm读取一个200+M的CSV的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存
- “正则表达式”对象,我们就可以非常方便的对各种数据进行合法性的校验了。首先,让我们来了解一下究竟什么
- 工作中遇到的问题,自定义了一个forms.form表单,某项需要作出下拉菜单,下拉菜单中的选项需要从数据库(objectForm model
- 异步操作数据的方式有两种常见的方式:XMLHttpRequest 和 iframe. 孰优孰劣在此我们不争论,只是想举一个例子说明在获取网片
- 本文实例讲述了asp.net实现图片以二进制流输出的两种方法。分享给大家供大家参考,具体如下:方法一:System.IO.MemoryStr