Python工具之SQLAlchemy

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

工作方式:通过定义类的方式来操作数据库,一个类对应数据库中的一个表,一个类对象对应表中的一行数据,通过实例化类的方式来向数据库表中插入数据,通过对象.字段名来获取表中相应字段的值。

以一个具体的例子来说明:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, DATETIME
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine

# 以字典的形式配置好Mysql数据库的连接信息
mysql_dic = {
   ‘mysql_user‘:‘test‘,
   ‘mysql_pass‘:‘1234‘,
   ‘mysql_ip‘:‘192.168.192.168‘,
   ‘mysql_port‘:3306,
   ‘mysql_db‘:‘test‘,
}

class Connect(object):          # 创建一个专门连接数据库的类
   Base = declarative_base()    # 创建对象的基类
   def __init__(self):
      mysql_str = "mysql+mysqldb://{mysql_user}:{mysql_pass}@{mysql_ip}:{mysql_port}/{mysql_db}"    # 连接数据库的命令行
      mysql_con = mysql_str.format(**mysql_dic)                 # 格式化命令
      self.engine = create_engine(mysql_con, max_overflow=5)    # 初始化数据库连接
      Session = sessionmaker(bind=self.engine)                 # 创建一个会话来操作数据库
      self.session = Session()

   def create_table(self):
      ‘‘‘寻找Base的所有子类,按照子类的结构在数据库中生成对应的数据表信息‘‘‘
      Connect.Base.metadata.create_all(self.engine)

class Server(Connect.Base):    # 定义一个类(其实就是一张数据库表)继承Base基类
   __tablename__ = ‘server‘    # 表名,以下均为表字段
   id = Column(Integer,autoincrement=1,primary_key=True)
   date = Column(DATETIME)
   user = Column(String(20))
   ip = Column(String(50))
   group = Column(String(50))

if __name__ == ‘__main__‘:
   c = Connect()    # 连接数据库并创建程序与数据库之间的会话
   c.create_table() # 创建定义的server表 
   
      # 增加数据
    s = Server(user=‘test‘,ip=‘192.168.100.1‘,group=‘monitor‘) # 实例化一个类对象
    c.session.add(s) # 通过session会话向表中添加一行数据(一个类对象)
    
    # c.session.add_all([
    #     Server(user=‘test‘,ip=‘192.168.100.2‘,group=‘monitor‘),
    #     Server(user=‘test‘,ip=‘192.168.100.3‘,group=‘monitor‘),
    # ])    # 一次添加多条数据
    
    c.session.commit()    # 提交
     
    
    # 删除数据(删除server表中id大于2的数据)
    c.session.query(Server).filter(Server.id > 2).delete()
    c.session.commit()
    
    # 修改数据(修改server表中id大于2的数据的group字段值为JAVA)
    c.session.query(Server).filter(Server.id > 2).update({‘group‘ : ‘JAVA‘})
    c.session.commit()
    
    # 查询数据(查询server表中所有user字段值为test的数据)
    ret = c.session.query(Server).filter_by(user=‘test‘).all()
    for i in ret:
        print i.ip    # 获取满足条件的数据中ip字段的值
         
    c.session.close()     # 关闭会话

博客的部分内容和思路整理自武沛齐的博客

时间: 2024-08-27 15:00:20

Python工具之SQLAlchemy的相关文章

Windows+Linux安装Python工具setuptools

Windows+Linux安装Python工具setuptools setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Python 2.3.5 以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况. 经常接触Python可能会注意到,当需要安装第三方pytho

使用Python工具分析风险数据

随着网络安全信息数据大规模的增长,应用数据分析技术进行网络安全分析成为业界研究热点,小安在这次小讲堂中带大家用Python工具对风险数据作简单分析,主要是分析蜜罐日志数据,来看看一般大家都使用代理ip干了一些啥事. 大家可能会问小安啥是蜜罐,网上一些黑客或技术人员经常做一些"事情"的时候,需要隐藏自己身份,这样他们会使用代理IP来办事.而蜜罐(Honeypot)是一种新型的主动防御的安全技术,它是一个专门为了被攻击或入侵而设置的欺骗系统——既可以用于保护产品系统,又可用于搜集黑客信息,是一种配置

1001种玩法 | Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库

Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库 prompt_toolkit 是一个用于构建强大交互式命令行的 Python 工具库. 你是不是在找交互式的 Python shell 工具 ptpython 呢?我们把 ptpython 的源码转移到了一个独立的仓库.如此一来,我们确信  prompt_toolkit 库不会被其他 ptpython 东西"污染",并且 ptpython 也可以独立开发.现在必须用下面这个命令安装 ptpytho

Python 工具——Anaconda+Pycharm 的安装过程

适用对象:编程完全小白,准备安装 Python 进行学习 本文特点: 十分具体详细,细致到了每一步安装过程的截图,看了此篇,你完全不用看其他教程,给出了软件的百度云以及自己找到的可用的 Pycharm 的激活方式,可以直接安好,并开始写出自己的第一个 Python 代码. 强烈建议: 如果还没有开始 Python 工具下载的初学者,切记不要直接装 Python,推荐直接装 Anaconda 要方便很多.建议安装 Anaconda+Pycharm 来学习 Python,尤其是对于学习数据分析的同学

推荐7 款 Python 工具,让在学习时就就比别人快一步!

想要成为一个程序员,除了学习各种教程之外,熟悉各种已经在生产环境中使用的工具会让你更快的成长! 看到最后有惊喜! 这里有7款python工具,是所有数据专家必不可少的工具.当你对他们有一定了解后,会成为你找工作的绝对优势!下面就了解它们一下吧: IPython IPython是一个基于Python Shell的交互式解释器,但是有比默认Shell强大得多的编辑和交互功能.IPython 提供了如下特性: 更强的交互 shell(基于 Qt 的终端) 一个基于浏览器的记事本,支持代码,纯文本,数学

python如何用sqlalchemy操作数据库

工具:mysql  python sqlalchemy ---------------------------------------- 准备工作: 1.安装mysql 如果是window环境请参考 win7安装mysql 如果是linux环境请参考 --稍后补充 2.安装python windows: win7安装python2和python3 linux: linux安装python36 linux python2.6.6以后的版本同样要通过源码包安装,看了下这位博主的这篇文章写的非常详细h

python小白-day11 sqlalchemy

SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如: MySQL-Python     mysql+mysqldb://<user>:<password>@<host>[:<po

安装使用python工具

一.python的安装调试 首先安装python,在安装过程中基本上可以一路下一步,但在安装结束后要勾选复选框"add python to path",主要目的是为了让系统自动添加环境变量. 安装完成后,win+R打开运行命令(或者在开始菜单,点击运行),输入cmd,进入dos窗口,在dos窗口下输入python,验证,安装成功 二.安装selenium 下载selenium安装包,安装路径更改在所安装的python>Lib>site-packages文件夹下,安装完成后在

python orm框架SQLAlchemy简单应用(数据库操作)

#_*_coding:utf-8_*_ ''' 创建SQLAlchemy应用基本过程 1.创建连接(和关系数据库创建连接) 2.声明映射文件(python中到类和数据库中的表做一对一的映射,这样就可以通过python中的类对数据库中到表进行操作) 3.创建模式(可以创建表) 4.初始化映射实例 5.创建会话 6.持久化实例对象 ''' from sqlalchemy import create_engine #创建连接 engine = create_engine('mysql://root:1