当前位置:   article > 正文

sqlalchemy从入门到熟悉(一)_sqlalchemy insert

sqlalchemy insert

sqlalchemy从入门到熟悉(一)

简介

SQLAlchemy SQL工具包和对象关系映射器是一套用于处理数据库和Python的综合工具。它有几个不同的功能领域,可以单独使用或组合使用。SQLAlchemy的两个最重要的面向前端的部分是对象关系映射器(ORM)以及Core。核心包含SQLAlchemy 的SQL以及数据库集成和描述服务的广度,其中最突出的部分是SQL表达式语言。

  1. SQL表达式语言是一个完全独立于ORM包的工具包,它提供了一个构造由可组合对象表示的SQL表达式的系统,然后可以针对特定事务范围内的目标数据库“执行”这些SQL表达式,并返回结果集。插入、更新和删除是通过传递表示这些语句的SQL表达式对象以及表示要与每个语句一起使用的参数的字典来实现的。

  2. ORM构建在Core之上,以提供使用映射到数据库模式的域对象模型的方法。在使用ORM时,SQL语句的构造方式与使用Core时基本相同,但是DML的任务是使用工作单元,它将针对可变对象的状态更改转换为INSERT、UPDATE和DELETE构造,然后根据这些对象调用这些构造。特定于ORM的自动化和以对象为中心的查询功能也增强了SELECT语句。

  3. 使用Core和SQL表达式语言提供了一个以模式为中心的数据库视图,以及一个面向不变性的编程范例,而ORM则在此基础上构建了一个以域为中心的数据库视图,具有更明显的面向对象和依赖于可变性的编程范例。由于关系数据库本身是可变服务,不同之处在于Core/SQL表达式语言是面向命令的,而ORM是面向状态的。

  4. 支持的安装方法

(1)使用PIP安装

pip install SQLAlchemy
# 安装最新的预缓解版本,使用--pre
pip install --pre SQLAlchemy
  • 1
  • 2
  • 3

(2)SQLAlchemy安装是通过标准Python方法进行的,这些方法基于setuptools,可以通过引用setup.py直接使用。

python setup.py install
  • 1

(3)检查已安装的SQLAlchemy版本

>>> import sqlalchemy
>>> sqlalchemy.__version__
'1.4.41'
  • 1
  • 2
  • 3

建立连接

  1. 任何SQLAlchemy应用程序的开始都是一个名为Engine。此对象充当连接到特定数据库的中心源,提供工厂和连接池。引擎通常是一个职位特定数据库服务器创建一次的全局对象,并使用一个URL字符串进行配置。
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:root@localhost:3306/test')
  • 1
  • 2

处理事务和DBAPI

  1. 获取连接
from sqlalchemy import create_engine, text
engine = create_engine('mysql+pymysql://root:root@localhost:3306/test')

# with语句是python的上下文管理器
with engine.connect() as conn:
    result = conn.execute(text("select 'hello world'"))
    print(result.all())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:

[(‘hello world’,)]

  1. 提交更改
#DBAPI是非自动提交的,可以使用`commit()`方法提交
with engine.connect() as conn:
    conn.execute(text("create table demo(x int, y int)"))
    conn.execute(text("insert into demo(x, y) values(:x, :y)"), 
       [{
   "x": 1, "y": 1}, {
   "x": 2, "y": 4}])
    conn.commit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 获取返回结果
with engine.connect() as conn:
    # REsul有很多用于获取和转换行的方法,类似于python的命名元组
    result = conn.execute(text
  • 1
  • 2
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号