SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作

简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果

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

以下列举了几种常用插件的数据库url格式:

MySQL-Pythonmysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>pymysqlmysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]MySQL-Connectormysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>cx_Oracleoracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]

本文使用 pymysql 插件:

安装:

# 安装pymysql插件
pip install pymysql # 安装sqlalchemy
pip install sqlalchemy

安装成功后即可使用:

本实例用法为表已经存在, ORM 自动映射类

from datetime import datetime
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine# 数据库连接url
DB_CONNECT_STRING = 'mysql+pymysql://username:password@address:port/database'# 创建引擎
engine = create_engine(DB_CONNECT_STRING, echo=True)# 自动映射
Base = automap_base()
Base.prepare(engine,reflect=True)# 获取所有表的映射类
tables = Base.classes.keys()# 获取指定类user表 --> user实体类
user = Base.classes.user# 查看user
#print(user.__dict__)# 获取所有字段或属性
keys = test_case.__table__.columns.keys()# 创建session
Session = sessionmaker(bind=engine)
session = Session()# 查表,返回实例列表
result = session.query(test_case).all()# 按条件查表, 返回实例集合
ret = session.query(test_case).filter_by(name='zhangsan').all()# 创建新的实例,并插入,nowtime字段为TIMESTAMP
newUser = user(name='lisi', age=10, nowtime=datetime.now())
session.add(newUser)# 提交
session.commit()

参考:

Python操作MySQL之SQLAlchemy:https://www.cnblogs.com/ccorz/p/5711955.html

python操作数据库常用工具: https://foofish.net/python-mysql.html

转载于:https://www.cnblogs.com/yelao/p/11003161.html

python sqlalchemy mysql 自动映射相关推荐

  1. python编写Mysql自动备份脚本

    1、先写一个python脚本 vim /opt/mysql_dump.py #!/usr/bin/env python # -*- coding:utf-8 -*- import os import ...

  2. MySQL补充——索引,流程控制,数据备份,python操作mysql,SQLAlchemy

    一.索引 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 1.索引种类 普通索引:仅加速查询 唯一索 ...

  3. Python操作MySQL之SQLAlchemy

    Python操作MySQL之SQLAlchemy 原文:https://www.cnblogs.com/ccorz/p/5711955.html SQLAlchemy是Python编程语言下的一款OR ...

  4. python自动备份数据库_Python Mysql自动备份脚本

    测试系统环境  Windows 2003   python 2.5.1  mysql 5.0.1 应该只适用于Win,因为调用了CMD. 增量备份,因为自用,数据库不大. 回头有了需求加上自检测,5天 ...

  5. 【python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB】

    python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\ ...

  6. python数据字典ppt_Python3自动生成MySQL数据字典的markdown文本的实现

    为啥要写这个脚本 五一前的准备下班的时候,看到同事为了做数据库的某个表的数据字典,在做一个复杂的人工操作,就是一个字段一个字段的纯手撸,那速度可想而知是多么的折磨和锻炼人的意志和耐心,反正就是很耗时又 ...

  7. Python SQLAlchemy入门教程

    原文:https://www.cnblogs.com/ybjourney/p/11832045.html Python SQLAlchemy入门教程 一.介绍 关于ORM 为什么用sqlalchemy ...

  8. Python sqlalchemy orm 多对多外键关联

    多对多外键关联 注:使用三张表进行对应关联 实现代码: # 创建3个表 配置外键关联 # 调用Column创建字段 加类型 from sqlalchemy import Table, Column, ...

  9. Python sqlalchemy 连接常用的数据库

    python连接sqlServer数据库,Oracle数据库,MongoDB数据库,mysql数据库 python sqlalchemy 简介 学习链接 sqlalchemy是什么? sqlalche ...

最新文章

  1. python arp脚本_Python scapy 实现一个简易 arp 攻击脚本
  2. 电子网络发票应用系统网络不通_深度强化学习在典型网络系统中的应用综述
  3. 架构设计 | 基于消息中间件,图解柔性事务一致性
  4. 解析XML时DTD的处理--解析时忽略,生成XML文件时加上。-- XML进阶
  5. Power BI 的 最佳搭档 Excel(基础数据分析)
  6. VMmware安装VMware Tools问题解决
  7. C#LeetCode刷题之#824-山羊拉丁文​​​​​​​(Goat Latin)
  8. 用vector实现二维向量
  9. 如何删除下一页分节符_word 2010高级应用:分节符的使用
  10. windows守护进程_在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
  11. DOM对象转化成jQuery对象 $(参数) (能不能查到jQuery对象的所有方法)
  12. 微软开始受到越来越多尊重 谁是幕后功臣?
  13. 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理...
  14. linux系统刷机教程,在 Linux 刷 BIOS
  15. 三星S5660刷机及Root
  16. vscode 突然无法切换输入法(切换中文输入法)
  17. MySQL必知必会——实践习题
  18. 证件照制作相关的人像抠图/分割各家接口整理分析
  19. 使用同花顺F10查看个股概况!股票量化分析工具QTYX-V2.1.9
  20. ToC战场进入尾声,ToB市场战争厮杀即将升级?

热门文章

  1. 无法加载安装程序库 wbemupgd.dll
  2. ORACLE11G RAC 在 centeros5.5 的安装日志
  3. 在项目中使用 calendar_date_select
  4. Activity configChanges 含义
  5. Linux中硬盘转速查看
  6. CSS核心技术详解-核心概念
  7. vs项目中头文件(.h)静态库(.lib)和 动态库(.dll )的路径和配置
  8. RobotFramework自动化框架—robot文件中调用自定义库
  9. Java与C++进行系统间交互:Protocol Buffer
  10. Linux date命令的用法