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
这里呢,我直接先从分类找到这个分类,然后通过第三表来查询属于这个分类的文章、其实呢 这里很简单,可能是我当时自己的脑子短路了吧, 不知道怎么想是对的,现在来看 其实还是那么的简单,只是当时我忽略了什么。 加油,学习前进的路上。
python flask(多对多表查询)的更多相关文章
- python 3 mysql 单表查询
python 3 mysql 单表查询 1.准备表 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职 ...
- python开发mysql:单表查询&多表查询
一 单表查询,以下是表内容 一 having 过滤 1.1 having和where select * from emp where id > 15; 解析过程;from > where ...
- 5月10日 python学习总结 单表查询 和 多表连接查询
一. 单表查询 一 语法 select distinct 查询字段1,查询字段2,... from 表名 where 分组之前的过滤条件 group by 分组依据 having 分组之后的过滤条件 ...
- Python——Flask框架——Web表单
一.框架Flask-WTF 安装: pip install flask-wtf 需要程序设置一个密钥 app = Flask(__name__) app.config['SECRET_KEY'] = ...
- thinkphp 多对多表查询
1.表 班级表classes 学生表student 中间表classes_students 2.使用模型关联查询 新建模型 Classes在里面添加代码 ClassesStudent中间表模型,可以不 ...
- 57 ORM多表查询
多表查询from django.db import models# Create your models here. class Author(models.Model): nid = models. ...
- sqlalchemy模块介绍、单表操作、一对多表操作、多对多表操作、flask集成.
今日内容概要 sqlalchemy介绍和快速使用 单表操作增删查改 一对多 多对多 flask集成 内容详细 1.sqlalchemy介绍和快速使用 # SQLAlchemy是一个基于 Python实 ...
- python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
- python 全栈开发,Day73(django多表添加,基于对象的跨表查询)
昨日内容回顾 多表方案: 如何确定表关系呢? 表关系是在2张表之间建立的,没有超过2个表的情况. 那么相互之间有2条关系线,先来判断一对多的关系. 如果其中一张表的记录能够对应另外一张表的多条记录,那 ...
随机推荐
- trait技术详解,这次包你学得会
trait的使用技巧trait是php5.4以后新增加的一个功能,可以将多个类中,共用的一些属性和方法提取出来做来公共trait类,就像是装配汽车的配件,如果你的类中要用到这些配件,就直接用use导入 ...
- OC中Foundation框架之NSString、NSMutableString
创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@&q ...
- Docker - 从零开始到操作
从零开始 介绍Docker的基本概念和命令,并给出简单使用示例和参考信息. Docker - 基础讲义 http://www.cnblogs.com/anliven/p/6281373.html Do ...
- mysql主从复制-异步复制
一.创建复制账号: 在Master的数据库中建立一个备份帐户:每个Slave使用标准的MySQL用户名和密码连接master. 进行复制操作的用户会授予REPLICATION SL ...
- Unity C# 一些关于Camera的心得!
本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/6856374.html 首先,总结了下最近工作中关于摄像机漫游的功能, 脚本如下: Tran ...
- 头皮发麻的HTML课时一
话说我都不知道有多少天没有更新我的随笔了,不过我忽的一下发现到灵魂深处的罪孽:好吧,不扯淡了,其实就是自己懒得外加上HTML这个东西又实在是很重要,所以良心发现把我自己所学的给记录下来,我会尽量的写的 ...
- hdu 1711---KMP
题目链接 Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...
- 关于STM32在程序中间修改PWM值的总结(原创)
首先在STM32库函数里有这样一个函数 void TIM3_PWM_Init(u16 arr,u16 psc) 若TIM3_PWM_Init(7200,100)//设置频谱7200.分频100 ...
- 使用gzip优化web应用(filter实现)
相关知识: gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果 ...
- jQuery选择器中的空格问题
前几天就遇到过这样的问题,明明我用的是('tr :even').css('background','#ccc')想改变表格中行的背景色,反复试了还是没改变.还问了度娘还是没找到原因所在(当时问题描述的 ...