Flask中的的SQLAlchemy2
昨天更新了博客不知对各位职场的大佬有没有帮助,如果没有看到的请用小手狠狠地戳这里
Flask中的的SQLAlchemy
今天呢,我们来说一下多对多表的关系,知道不?开始之前我先说一个事,昨晚更新了博客之后我梦到一位女粉丝走到我面请轻轻的吻了我,啧啧啧,味可好了~~~~
1.多对多表关系
from sqlalchemy import Column,Integer,String,ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base() class Girls(Base):
__tablename__ = 'girl'
id = Column(Integer,primary_key=True)
name = Column(String(32))
#表的关系
girl2boy = relationship("Boys",secondary = "hotel",backref = "boy2girl") class Boys(Base):
__tablename__ = 'boy'
id = Column(Integer,primary_key=True)
name = Column(String(32)) class Hotel(Base):
__tablename__='hotel'
id = Column(Integer,primary_key=True)
girl_id = Column(Integer,ForeignKey("girl.id"))
boy_id = Column(Integer,ForeignKey("boy.id")) from sqlalchemy import create_engine
#这里不懂得,戳紫色的字!!
engine = create_engine("mysql+pymysql://root:614615@127.0.0.1:3306/day127?charset=utf8") Base.metadata.create_all(engine)
2.简单的操作
#curd_M2M.py from sqlalchemy.orm import sessionmaker
from SQL.curd_M2m import engine
from SQL.curd_M2m import Boys,Girls,Hotel
Session = sessionmaker(engine)
db_session = Session() #t通过想Boy添加数据添加girl和hotel数据。relationship反向
boy = Boys(name="李志强")
boy.boy2girl = [Girls(name="哇哈哈"),Girls(name="喜洋洋")]
db_session.add(boy)
db_session.commit()
db_session.close() #t通过想Girl添加数据添加boy和hotel数据。relationship正向
girl_obj = Girls(name="李二短",girl2boy=[Boys(name="任二狗"),Boys(name="任梦")])
db_session.add(girl_obj)
db_session.commit()
db_session.close() # 查询 正向查询
ret = db_session.query(Girls).all()
for girl in ret:
for boy in girl.girl2boy:
#这里说一下,注意表的结构,有很多的小的细节不注意就会报错,查到girl信息,再次遍历的时候注意girl.girl2boy,正向查询
print(girl.name , boy.name) # 查询 反向查询
ret = db_session.query(Boys).all()
for boy in ret:
for girl in boy.boy2girl:
print(boy.name,girl.name)
Flask中的的SQLAlchemy2的更多相关文章
- FlASK中的endpoint问题
先贴一点有关的flask代码,时间有限,我慢慢扩充 以下是flask源码中app.py中add_url_rule的代码. 主要是view_func -- endpoint -- url 之间的对应关 ...
- Flask 中的 SQLAlchemy 使用教程
Flask 是一个 python web micro framework.所谓微框架,主要是 flask 简洁与轻巧,自定义程度高.相比 django 更加轻量级. 之前一直折腾 django,得益于 ...
- Flask中路由模块的实现
在Flask中的路由功能主要通过修饰函数route实现,下面我们就来挖掘下route在源代码中是怎么分配视图函数的. def route(self, rule, **options): def dec ...
- Flask中全局变量的实现
我们都知道在Flask中g,request,session和request是作为全局对象来提供信息的,既然是全局的又如何保持线程安全呢,接下来我们就看看flask是如何做到这点的.在源码中的ctx.p ...
- python web开发-flask中日志的使用
Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ...
- Flask中使用数据库连接池 DBUtils ——(4)
DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程 ...
- 第七篇 Flask 中路由系统以及参数
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- 第六篇 flask中session
Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 Flask 中 session 的使用 1. Flask 中 session 是 ...
- 第四篇flask中模板语言 jinja2
Flask中默认的模板语言是Jinja2 首先我们要在后端定义几个字符串,用于传递到前端 STUDENT = {, 'gender': '中'}, STUDENT_LIST = [ {, 'gende ...
随机推荐
- XE StringGrid应用(G1属性触发G2)
unit UnitMain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System. ...
- Func和Action的介绍及其用法
Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能. ...
- Eclipse操作技巧记录
工欲善其事,必先利其器.记录下自己使用的eclipse操作技巧 1.eclipse设置自动提示 window->preference->java->editor->conten ...
- C# 多线程操作实例
1.多线程操作 一旦打开线程就必须记得关闭 1.第一部分 这是个数字叠加小功能 private void CountTo(int countTo, CancellationToken ct) { ; ...
- angular 路由传参
第一种:<a [routerLink]="['/product']" [queryParams]="{id: 1}">商品详情</a> ...
- 【连载】redis库存操作,分布式锁的四种实现方式[四]--基于Redis lua脚本机制实现分布式锁
一.redis lua介绍 Redis 提供了非常丰富的指令集,但是用户依然不满足,希望可以自定义扩充若干指令来完成一些特定领域的问题.Redis 为这样的用户场景提供了 lua 脚本支持,用户可以向 ...
- HTML4.0 需要掌握的主要内容
常用标签: <html></html> 创建一个HTML文档 <head></head> 设置文档标题和其它在网页中不显示的信息 <title&g ...
- 「TJOI2013」循环格
题目链接 戳我 \(Solution\) 我们观察发现循环格要满足每个点的入度都为\(1\) 证明: 我们假设每个点的入读不一定为\(1\),那么必定有一个或多个点的入度为0,那么则不满足循环格的定义 ...
- WebStrom-JS编程小技巧
快速打印某个名为***的对象:***.log回车效果如下:
- string类------新标准c++程序设计
定义: string类是STL中basic_string模板实例化得到的模板类.其定义如下: typedef basic_string<char>string; 构造函数: string类 ...