SQLAlchemy 简介:

SQLAlchemy 是用于实现 ORM(Object Relational Mapping,对象关系映射)的一个模块,即把数据库的表结构映射到对象上
在 Python 中,也就是将关系型数据库表结构抽象成面向对象的 Python 类,将表操作转换成类操作,避免了复杂的 SQL 语句编写

[root@localhost ~]# pip3 install SQLAlchemy

SQLAlchemy 连接数据库:

#!/usr/bin/env python3
#-*- coding: utf- -*- from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://root:123456@127.0.0.1/test', encoding='utf8', echo=True)
print(engine) # create_engine():用于创建一个Engine实例,通过这个实例,SQL语句会被解释成Python类方法
# 语法:mysql+pymysql://<user>:<password>@<host>[:<port>]/<dbname>
# mysql:表示使用哪种数据库,其他数据库如 Oracle 、Redis 、MongoDB 等
# pymysql:SQLAlchemy本身无法操作数据库,必须使用第三方模块进行操作
python2 使用 mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname> 来操作数据库
python3 使用 mysql+pymysql://<user>:<password>@<host>[:<port>]/<dbname> 来操作数据库
# <user>:<password>@<host>[:<port>]/<dbname>:分别表示连接数据库的用户名 、密码 、主机以及连接到哪个库名
# encoding='utf8':用于指定字符编码,可选参数
# echo=True:会显示Python类对应的SQL语句,方便查看要执行什么SQL语句,可选参数

SQLAlchemy 创建表结构:

第一种方式:在自定义的类中继承 declarative_base 这个基类来映射数据表

#!/usr/bin/env python3
#-*- coding: utf-8 -*- from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer engine = create_engine('mysql+pymysql://root:123456@127.0.0.1/test') # 连接数据库
Base = declarative_base() # 生成 ORM 基类 class User(Base): # 继承基类
__tablename__ = "user" # 定义表名
userid = Column(Integer, primary_key=True) # 定义 userid 字段,字段类型为数值类型,并设为主键
username = Column(String(32)) # 定义 username 字段,字段类型为字符串类型
password = Column(String(64)) # 定义 password 字段,字段类型为字符串类型 if __name__ == '__main__':
Base.metadata.create_all(engine) # 创建表结构,父类Base会调用所有继承他的子类来创建表结构

第二种方式:通过 MetaData 来存储表的元数据(也就是存储表结构),然后映射数据表

#!/usr/bin/env python3
#-*- coding: utf-8 -*- from sqlalchemy import create_engine, MetaData
from sqlalchemy import Table, Column, Integer, String engine = create_engine('mysql+pymysql://root:123456@127.0.0.1/test') # 连接数据库
metadata = MetaData() # 存储表的元数据 user = Table('user', metadata, # 定义表名
Column('userid', Integer, primary_key=True), # 定义 userid 字段,字段类型为数值类型,并设为主键
Column('username', String(32)), # 定义 username 字段,字段类型为字符串类型
Column('password', String(64)), # 定义 password 字段,字段类型为字符串类型
) if __name__ == '__main__':
metadata.create_all(engine) # 创建表结构

SQLAlchemy 增加表数据:

Python 对 MySQL 数据库进行增删查改等操作需要先创建 session,session 用于创建程序与数据库之间的会话,所有对象的载入和保存都需要通过 session 对象

#!/usr/bin/env python3
#-*- coding: utf-8 -*- from sqlalchemy import create_engine
from sqlalchemy import Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker engine = create_engine('mysql+pymysql://root:123456@127.0.0.1/test')
Base = declarative_base()
DBSession = sessionmaker(bind=engine) # 创建与数据库的会话
session = DBSession() # 实例化与数据库的会话 class User(Base):
__tablename__ = "user"
userid = Column(Integer, primary_key=True)
username = Column(String(32))
password = Column(String(64)) user1 = User(userid=1, username='Tom', password='') # 生成user表要插入的一条数据
user2 = User(userid=2, username='John', password='') # 生成user表要插入的一条数据
user3 = User(userid=3, username='Jeny', password='') # 生成user表要插入的一条数据 session.add(user1) # add()用于把user表要插入的一条数据添加到Session里
session.add_all([user2, user3]) # add_all()用于把user表要插入的多条数据添加到Session里
session.commit() # 最后提交会话,实现插入数据
session.close()

SQLAlchemy 查询表数据:

Python SQLAlchemy 模块的更多相关文章

  1. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)

    pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...

  2. python使用SQLAlchemy模块连接MySQL

    ORM技术:Object-Relational Mapping,负责把关系数据库的表结构映射到对象上. 1.安装SQLAlchemy,MySQLdb模块 MySQLdb安装教程:http://www. ...

  3. Python(SQLAlchemy-ORM)模块之mysql操作

    一.SQLAlchemy简单介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数 ...

  4. python 常用模块(转载)

    转载地址:http://codeweblog.com/python-%e5%b8%b8%e7%94%a8%e6%a8%a1%e5%9d%97/ adodb:我们领导推荐的数据库连接组件bsddb3:B ...

  5. Python标准模块--importlib

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 Python提供了importlib包作为标准库的一 ...

  6. python+SQLAlchemy+爬虫

    python+SQLAlchemy+爬虫 前面分享了SQLAlchemy的知识,这次我共享一下学习用python开发爬虫再把爬出来的数据放到用SQLAlchemy的数据库上面的知识,当然我这个是带测试 ...

  7. Python SQLalchemy的学习与使用

    SQLAlchemy是python中最著名的ORM(Object Relationship Mapping)框架了. 前言:什么是ORM? ORM操作是所有完整软件中后端处理最重要的一部分,主要完成了 ...

  8. 【转】Python标准模块--importlib

    [转]Python标准模块--importlib 作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 P ...

  9. SQLAlchemy模块的使用教程

    数据库表是一个二维表,包含多行多列.把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含id和name的user表 ...

随机推荐

  1. dp之混合背包poj1742(推荐)

    题意:给你价值为a1,a2.....的货币,每种有c1,c2.......个,求这些货币所能组成的价值小于等于m有多少个..... 思路:很像一道多重背包题?那我一开始的确是用多重背包的思路编写的.. ...

  2. 支持移动触摸设备的简洁js幻灯片插件

    lory是一款支持移动触摸设备的简洁的js幻灯片插件.该幻灯片插件可以通过纯js调用,也可以将该幻灯片插件作为jQuery插件来使用.该幻灯片的过渡动画具有硬件加速功能,并且可以定制是否使用easin ...

  3. 起来吧!不要做奴隶的ITproject师们!

    本文转自林忠信的博客:  http://davylin.blog.163.com/blog/static/8138791201441465328380/ 起来吧! 不要做奴隶的ITproject师们! ...

  4. CentOS 7 系统下安装gnome图形界面

    在安装Gnome 包之前,我们需要先检查下安装源是否正常,因为我们要通过yum命令来安装gnome包, 而yum命令式通过yum 源来下载安装包的. 1.在命令行下输入下面的命令来安装 Gnome 包 ...

  5. am335x USB 驱动框架记录

    参考: http://processors.wiki.ti.com/index.php/AM335x_USB_Driver%27s_Guide http://processors.wiki.ti.co ...

  6. Android——通知 Notification

    链接:http://jingyan.baidu.com/article/77b8dc7fde875a6175eab641.html http://www.2cto.com/kf/201502/3749 ...

  7. oozie中使用sqoop导入hive表时提示hive找不到

    根据出错信息是找不到hive的位置,所以想到的解决方法是: 在sqoop的workflow中添加job-xml,属性写hive-site.xml在hdfs上的位置. (fail) 直接配置一个hive ...

  8. Struts2- 设置默认拦截器

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...

  9. 将sqlServer上的数据库文件进行盘目的迁移

    在数据库客户端创建数据库时要改为.mdf文件,因为附加问价时附加的是.mdf文件: 在里选中相应的数据库 右键->任务-分离 在 剪切到相应的想放置的盘目. 例如迁移到E盘下: 在数据库-> ...

  10. openfire 详细介绍一

    XMPP ExtensibleMessaging and Presence Protocol,简单的来讲,它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是 ...