首页 > 数据库 >Flask-SQLAlchemy

Flask-SQLAlchemy

时间:2022-11-16 22:25:23浏览次数:41  
标签:engine SQLAlchemy Flask cursor API SQL import 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://<user>:<password>@<host>[:<port>]/<dbname>
    
# pymysql
    mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
    
# MySQL-Connector
    mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
    
# 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语句

# 基本使用(不常见)

import time
import threading
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.engine.base import Engine

engine = create_engine(
    "mysql+pymysql://root:[email protected]:3306/bbs14?charset=utf8",
    max_overflow=0,  # 超过连接池大小外最多创建的连接
    pool_size=5,  # 连接池大小
    pool_timeout=30,  # 池中没有线程最多等待的时间,否则报错
    pool_recycle=-1  # 多久之后对线程池中的线程进行一次连接的回收(重置)
)


def task(arg):
    conn = engine.raw_connection()
    cursor = conn.cursor()
    cursor.execute(
        "select * from app01_blog"
    )
    result = cursor.fetchall()
    print(result)
    cursor.close()
    conn.close()


for i in range(1):
    t = threading.Thread(target=task, args=(i,))
    t.start()

 

标签:engine,SQLAlchemy,Flask,cursor,API,SQL,import,sqlalchemy
From: https://www.cnblogs.com/baicai37/p/16897728.html

相关文章

  • Flask 学习-97.Flask-SQLAlchemy 排序 order_by()
    前言order_by()对查询结果排序按字段排序根据id字段排序,默认是正序a=Students.query.order_by(Students.id).all()print(a)使用asc()函数正序a=Student......
  • Flask 学习-96.Flask-SQLAlchemy 判断查询结果是否存在的几种方式
    前言在查询的时候,经常需要先判断是否存在结果,再进行下一步操作。这里总结了判断查询结果是否存在的几种方式count()统计个数count()方法返回记录条数,使用示例withap......
  • 巨蟒python全栈开发flask11项目开始3
    1.多玩具遥控&&websocket回锅2.绑定玩具时添加好友的最终逻辑3.消息&&好友列表4.chat聊天&&对话窗口 1.多玩具遥控&&websocket回锅app的4个隐藏需求: 回顾: 下面看一下上......
  • 巨蟒python全栈开发flask10 项目开始2
    1.websocket异常处理出现上图报错的原因是什么?原因是:websocket断开了,所以报错19行接收的msg是None值,所以报错.打开一个文件,点击发送音乐,出现上面的内容:客户端app发送......
  • 巨蟒python全栈开发flask9 项目开始1
    1.项目需求分析立项:Javis&&taisen(三个月全部,先模拟出一个玩具,硬件需要周期长一些)想法---需求分析:1.通过玩具与孩子实时进行沟通2.希望玩具的知识渊博3.......
  • 巨蟒python全栈开发flask7 语音识别升级版&&mongoDB
    1.web简陋版玩具首先,复制上一节课的内容,将其中的语音文件删除掉,放入三个文件,然后,我们需要在app写入下面的内容下图是需要修改的地方:  Recorder_ok.js是一个web录音......
  • 巨蟒python全栈开发flask1
    1.整体把握(1)路飞学城-RestAPI前后端分离开发DjangoVue.js-DRFDjangoRestFromwork-线上商城的经验(2)智能玩具-RestAPI前后端分离开发FlaskFlask......
  • Flask 学习-95.Flask-SQLAlchemy 查询今天当天的数据
    前言查询今天的数据,或者查询某一天的数据SQLDATE()function使我们能够从特定的历史或当前时间戳值访问日期值。DATE()函数Date()函数返回从传递的datetime表达式中提......
  • Flask框架:如何运用Ajax轮询动态绘图
    本文分享自华为云社区《​​Flask框架:运用Ajax轮询动态绘图​​》,作者:LyShark。Ajax是异步JavaScript和XML可用于前后端交互,在之前​​《Flask框架:运用Ajax实现数据交互》......
  • 2211-13 flask模板
    第3章:模板在一般的Web程序里,访问一个地址通常会返回一个包含各类信息的HTML页面。因为我们的程序是动态的,页面中的某些信息需要根据不同的情况来进行调整,比如对登录......