python3.8版本支持flask-sqlalchey包吗_Flask-SQLAlchemy

SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

pip3 install sqlalchemy

组成部分:

Engine,框架的引擎

Connection Pooling ,数据库连接池

Dialect,选择连接数据库的DB API种类

Schema/Types,架构和类型

SQL Exprression Language,SQL表达式语言

SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:

MySQL-Python

mysql+mysqldb://:@[:]/

pymysql

mysql+pymysql://:@/[?]

MySQL-Connector

mysql+mysqlconnector://:@[:]/

cx_Oracle

oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]

更多:http://docs.sqlalchemy.org/en/latest/dialects/index.html

1. 执行原生SQL语句

1 importtime2 importthreading3 importsqlalchemy4 from sqlalchemy importcreate_engine5 from sqlalchemy.engine.base importEngine6

7 engine =create_engine(8 "mysql+pymysql://root:[email protected]:3306/t1?charset=utf8",9 max_overflow=0, #超过连接池大小外最多创建的连接

10 pool_size=5, #连接池大小

11 pool_timeout=30, #池中没有线程最多等待的时间,否则报错

12 pool_recycle=-1 #多久之后对线程池中的线程进行一次连接的回收(重置)

13 )14

15

16 deftask(arg):17 conn =engine.raw_connection()18 cursor =conn.cursor()19 cursor.execute(20 "select * from t1"

21 )22 result =cursor.fetchall()23 cursor.close()24 conn.close()25

26

27 for i in range(20):28 t = threading.Thread(target=task, args=(i,))29 t.start()

方法1

1 #!/usr/bin/env python

2 #-*- coding:utf-8 -*-

3 importtime4 importthreading5 importsqlalchemy6 from sqlalchemy importcreate_engine7 from sqlalchemy.engine.base importEngine8

9 engine = create_engine("mysql+pymysql://root:[email protected]:3306/t1", max_overflow=0, pool_size=5)10

11

12 deftask(arg):13 conn =engine.contextual_connect()14 with conn:15 cur =conn.execute(16 "select * from t1"

17 )18 result =cur.fetchall()19 print(result)20

21

22 for i in range(20):23 t = threading.Thread(target=task, args=(i,))24 t.start()

方法2

1 #!/usr/bin/env python

2 #-*- coding:utf-8 -*-

3 importtime4 importthreading5 importsqlalchemy6 from sqlalchemy importcreate_engine7 from sqlalchemy.engine.base importEngine8 from sqlalchemy.engine.result importResultProxy9 engine = create_engine("mysql+pymysql://root:[email protected]:3306/t1", max_overflow=0, pool_size=5)10

11

12 deftask(arg):13 cur = engine.execute("select * from t1")14 result =cur.fetchall()15 cur.close()16 print(result)17

18

19 for i in range(20):20 t &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值