前言

SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。
它提供了SQL工具包和ORM(对象关系映射)工具,类似于Django 自带的 ORM 框架操作数据库。
官方文档地址https://docs.sqlalchemy.org/en/14/orm/quickstart.html

环境准备

基于python3.8环境,安装 sqlalchemy 和 pymysql

pip3 install sqlalchemy==1.4.39
pip3 install pymysql==1.0.2

配置连接

连接数据库,需要使用到一些配置信息,组合成满足以下条件的字符串:

dialect+driver://username:password@host:port/database

相关配置参数说明

配置参数 说明
dialect 数据库,如:sqlite、mysql、oracle等
driver 数据库驱动,如前面安装的:pymysql
username 登录数据库用户名
password 登录数据库密码
host 数据库部署 IP 地址
port 端口
database 数据库库名

拼接地址示例

# 拼接配置dialect + driver://username:passwor@host:port/database
DB_URI = 'mysql+pymysql://root:123456@localhost:3306/web'

连接数据库示例

查询 SQL 示例

select * from yoyo_projectinfo WHERE project_name = 'yoyo';

执行结果

先测试下配置的参数是否能连上数据库,写个简单的sql查询

from sqlalchemy import create_engine# 拼接配置dialect + driver://username:passwor@host:port/database
DB_URI = 'mysql+pymysql://root:123456@localhost:3306/web'engine = create_engine(DB_URI)  # 创建引擎
conn = engine.connect()  # 创建连接
result = conn.execute('select * from yoyo_projectinfo WHERE project_name = "yoyo";')  # 执行SQL
print(result.fetchone())
conn.close()    # 关闭连接

能看到执行结果,说明数据库连接成功。这是执行的硬核SQL语句,接下来就是讲通过ORM 操作数据库。

创建 ORM 模型

SQLAlchemy 是 Python 著名的 ORM 工具包。通过 ORM,开发者可以用面向对象的方式来操作数据库,不再需要编写 SQL 语句。
在python代码中创建一个类,每个类对应了一个数据库中的一张表,类的数据属性对应了表中的字段名,这个类称为映射类。

创建模型示例

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine, Column, Integer, String# 拼接配置dialect + driver://username:passwor@host:port/database
DB_URI = 'mysql+pymysql://root:123456@localhost:3306/web'
Base = declarative_base()class Students(Base):__tablename__ = 'students'  # 数据库表名id = Column(Integer, primary_key=True)name = Column(String(20))fullname = Column(String(30))nickname = Column(String(30))def __repr__(self):return "<Students(name='%s', fullname='%s', nickname='%s')>" % (self.name, self.fullname, self.nickname)

相关参数说明:
__tablename__:数据库表名
Column: 数据表中的一列,内部定义了数据类型
primary_key:主键
String:定义字段是字符串类型,字符串类型需定义字符长度

执行下面这2句,将模型映射到数据库中

if __name__ == '__main__':engine = create_engine(DB_URI)Base.metadata.create_all(engine)  # 将模型映射到数据库中

执行完成后,在数据库中就可以看到students 表了

新增数据

模型创建完成后,接下来需要往数据库表里面添加数据,需要使用一个引擎的实例来创建一个 Session类的实例。

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from xx.xx import Studentsengine = create_engine('mysql+pymysql://root:123456@localhost:3306/web')
# 把当前的引擎绑定给这个会话
Session = sessionmaker(bind=engine)
# 实例化
session = Session()# 创建一个student对象
student_obj = Students(name='yoyo', fullname='yoyoketang', nickname='yy')
session.add(student_obj)  # 添加到session
session.commit()  # 提交到数据库

执行完成后,会看到数据库里面有新增的数据了

批量创建数据使用add_all

session.add_all([Students(name='yoyo1', fullname='yoyoketang1', nickname='yy1'),Students(name='yoyo2', fullname='yoyoketang2', nickname='yy2')
])
session.commit()

SQLAlchemy学习-1.环境准备与基础使用相关推荐

  1. 深度学习开发环境及编程基础

    1. 独立环境配置 conda 配置一套OS相关工具包(编译好库) 创建环境 conda create -n 环境名 python=3.7 其它conda包 进入环境 conda acitvate 环 ...

  2. PaddlePaddle开发者福利:深度学习环境一键部署+基础入门指导书

    2019独角兽企业重金招聘Python工程师标准>>> 由河北科技大学许云峰老师团队打造和分享,线下深度学习实验环境镜像(PaddlePaddle Fluid 1.1.0版+Pyth ...

  3. Spark学习之路一——Spark基础及环境搭建

    Spark学习之路一--Spark基础及环境搭建 文章目录 一. Spark 概述 1.1 概述 1.2 优势特性 1.2.1 运行速度快 1.2.2 容易使用 1.2.3 通用性 1.2.4 运行模 ...

  4. 学python需要什么基础知识-学习Python需要知道哪些基础入门知识?

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python就业前景广阔.很多 ...

  5. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  6. Ubuntu18.04+CUDA10.2 深度学习开发环境配置指南

    深度学习 Author:louwill Machine Learning Lab 搞深度学习环境永远是第一步.笔者之前也写过配置的两篇文章,但时间久远,目前来看版本已经过旧了.之前两篇参考: 深度学习 ...

  7. java开发环境及数据类型实验_实验项目1 Java开发环境与语言基础

    <实验项目1 Java开发环境与语言基础>由会员分享,可在线阅读,更多相关<实验项目1 Java开发环境与语言基础(14页珍藏版)>请在人人文库网上搜索. 1.实验项目1 Ja ...

  8. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  9. 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境

    深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...

  10. 计算机视觉与深度学习基本环境安装

    计算机视觉与深度学习基本环境安装 1. Python的安装与使用 1.1 Python简介 1.2 Python下载与安装 1.2.1 Anaconda的下载与安装 1.2.2 Python编译器Py ...

最新文章

  1. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 6.)(python/c/c++版)(笔记)
  2. 如何在运行时使用SAP Commerce Cloud backoffice直接给类型增添新属性
  3. python字典副本_如何复制字典并仅在Python中编辑副本?
  4. DataLoader worker (pid 2287) is killed by signal: Killed. pytorch训练解决方法
  5. get请求中params参数的使用
  6. 从零开始刷Leetcode——数组(268.283.414)
  7. 外设获取物理内存数据_Linux系统对IO端口和IO内存的管理
  8. Java常用实现八种排序算法与代码实现
  9. 2019最新java自学路线
  10. 16秋计算机JAVA第一节课作业(钟永钜)
  11. selenium实现自动登录B站
  12. 创建一个Employee类
  13. opencv C++图像/视频旋转 90度 180度 270度
  14. 淘宝私域流量有哪些?怎么获取淘宝私域流量?
  15. 乐鲜生活后台管理系统--项目总结
  16. 关于R语言多水平线性回归分析
  17. switch()的参数注意项(转)
  18. 在单片机C语言中const是什么意思
  19. java爬虫实例_关于java爬虫以及一些实例
  20. kafka中topic、partition、broker、consumerGroup、consumer之间的关系、区别及存在意义

热门文章

  1. codeblock的下载
  2. Openstack实验之yum源配置
  3. Window同时兼容运行多版本谷歌浏览器chrome
  4. 自适应鲁棒控制(ARC)实例推导(手写超详细)
  5. deepin linux 怎么安装软件,deepinLinux系统安装及软件安装
  6. 单片机实验报告-片内外RAM的数据转移
  7. 迅雷手机版苹果版_「9月22日」最新 苹果IOS手机迅雷Beta版证书修复版 安卓不限速...
  8. 华为安装gsm框架_华为Mate30Pro怎么安装谷歌服务框架?谷歌服务GMS框架安装方法...
  9. IP SAN与IB SAN
  10. 串口调试助手和网络调试助手