返回顶部
首页 > 资讯 > 数据库 >Python的SQLalchemy模块连接与操作MySQL的基础示例
  • 259
分享到

Python的SQLalchemy模块连接与操作MySQL的基础示例

示例模块操作 2022-06-04 18:06:41 259人浏览 独家记忆
摘要

一、sqlalchemy简介 SQLAlchemy是一个开源的SQL工具包,基本python编程语言的MIT许可证而发布的对象关系映射器。SQLAlchemy提供了“一个熟知的企业级全套持久性模式,使用OR

一、sqlalchemy简介
SQLAlchemy是一个开源的SQL工具包,基本python编程语言的MIT许可证而发布的对象关系映射器。SQLAlchemy提供了“一个熟知的企业级全套持久性模式,使用ORM等独立SQLAlchemy的一个优势在于其允许开发人员首先考虑数据模型,并能决定稍后可视化数据的方式。
二、SQLAlchempy的安装
首先需安装Mysql,这里就不再多说了.....
然后,下载SQLAlchemy(Http://www.sqlalchemy.org/download.html),这里我们以windows系统为例,然后打开cmd,在安装包文件目录下,运行


Python setup.py install

,通过python下输入


import sqlalchemy

,执行未报错则表示安装成功

三、SQLAlchemy的使用实例

1、完成简单数据表信息查询


# 1. 导入模块
from sqlalchemy import *
from sqlclchemy.orm import *
# 2. 建立数据库引擎
mysql_engine = create_engine("$address", echo, module)
 #address 数据库://用户名:密码(没有密码则为空)@主机名:端口/数据库名
 #echo标识用于设置通过python标准日志模块完成的SQLAlchemy日志系统,当开启日志功能,我们将能看到所有的SQL生成代码
# 3. 建立连接
connection = mysql_engine.connect()
# 4. 查询表信息
result = connection.execute("select name from t_name)
for row in result:
 print "name: ", row['name']
# 5. 关闭连接
connection.close()


2、插入新的数据表


# 1. 导入模块
from sqlalchemy import *
from sqlclchemy.orm import *
# 2. 建立数据库引擎
mysql_engine = create_engine("$address", echo, module)
 #address 数据库://用户名:密码(没有密码则为空)@主机名:端口/数据库名
 #echo标识用于设置通过python标准日志模块完成的SQLAlchemy日志系统,当开启日志功能,我们将能看到所有的SQL生成代码
# 3. 设置metadata并将其绑定到数据库引擎
metadata = Metadata(mysql_engine)
# 4. 定义需新建的表
users = Table('users', metadata,Column('user_id', Integer, primary_key=True),
 Column('name', String(40)),
 Column('age', Integer),
 Column('passWord', String),)
 #Table实现方式与SQL语言中的CRETE TABLE类似
# 5. 在数据库中创建表
metadata.create_all(mysql_engine)
 #向数据库发出CREATE TABLE命令,由此数据库新建名为users的表
 #调用时会检查已经存在的表结构,因此可重复调用
# 6. 创建一个与数据库中的users表匹配的python类
class user():
 def __int__(self, name, fullname, password):
 self.name = name
 self.fullname = fullname
 self.passwd = passwd
 #python类的属性需与users表的列名一致
# 7. 设置映射
from sqlalchemy.orm import mapper
mapper(user, users)
 # mapper()创建一个新的Mapper对象,与定义的类相关联
#需要注意的是,通过mapper建立映射的数据表必须带有主键,如果没有主键就无法定位某个table的某行row, 
#如果无法定位某行row, 就无法做Object-relational mapping这样的映射
# 8. 创建session
Session = sessionmaker(bind=mysql_egnine)
session = Session()
 #由此我们只需对python的user类的操作,后台数据库的具体实现交由session完成
# 9. 执行
session.commit()
 #实现与数据库的交互
# 10. 查询
usr_info = session.query(user).filter_by(age=12).first()
 #返回数据库中年纪12岁的第一条数据

上面结合SQLAlchemy中ORM部分实现一个Mapper对象,将类的实例对应表中的记录,实例的属性对应字段。实现一个Data Mapping需要三个元素:Tabella Metadata, user-defined class, mapper对象,这三个是实现对象对表映射的基本元素,在此基础上,可实现一对多的映射,实现类似多表查询的问题
首先创建两个相关联的表Student, Score,表Score中以主表的id字段为外键


Student = Table('student', engine,  
              column(‘id', Interger, primary_key = True), 
              column('name', String, nullable=False), 
              column('age', Interger) 
) 
Score = Table('score', engine,  
            column('id', Integer, primary_key=True), 
            column('student_id', Integer, ForeignKey(student.id)) 
            column('cateGory', String, nullable=False), 
            column('score', Integer)   
) 

两表中,Score表以Student表中id项为外键,一般称Student表为主表,Score表为从表
表创建好后,那同样,在python中需定义两个与表相对应的类


class student_type(object): 
     def __init__(self): 
        self.name = None 
class score_type(object): 
     def __init__(self): 
        self.category = None 

在建立mapping时,我们只需要体现两个表间又相互关联关系,
并不关心表中具体的主键与外键等关系(由SQLAlchemy处理),
当需要体现表student与表score间的关联关系,mapper具体的定义方法如:
mapper(student_type, student, properties={'_scores': relation(score_type, Score)})
通过properties中参数,实现score_type 与Score的映射,
由此可以通过访问student中的'_scores'属性来查询Score表中的值
另外,properties是一个字典,可以添加多个属性,SQLAlchemy中有些模块如backref, 也可导入

综上,使用关系映射可以方便地从一个对象直接找到相对应的其他的对象

您可能感兴趣的文档:

--结束END--

本文标题: Python的SQLalchemy模块连接与操作MySQL的基础示例

本文链接: https://lsjlt.com/news/14498.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的SQLalchemy模块连接与操作MySQL的基础示例
    一、SQLalchemy简介 SQLAlchemy是一个开源的SQL工具包,基本Python编程语言的MIT许可证而发布的对象关系映射器。SQLAlchemy提供了“一个熟知的企业级全套持久性模式,使用OR...
    99+
    2022-06-04
    示例 模块 操作
  • Mongodb基本操作与Python连接mongodb并进行基础操作的示例分析
    这篇文章主要介绍Mongodb基本操作与Python连接mongodb并进行基础操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mongodb是基于分布式文件存储的nos...
    99+
    2024-04-02
  • Python基础之模块的示例分析
    这篇文章给大家分享的是有关Python基础之模块的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是模块容器 -> 数据的封装函数 -> 语句的封装类 -> 方法和属性的封装模块 ...
    99+
    2023-06-15
  • Python中paramiko模块的基础操作与排错问题
    目录关于应用安装示例1.秘钥登陆2.单个命令执行3.执行多个命令4.SFTPClient下载文件5.上传文件6.ssh工具封装补充学习参考关于 python的ssh库操作需要引入一个...
    99+
    2024-04-02
  • Java基础之JDBC连接数据库与基本操作的示例分析
    小编给大家分享一下Java基础之JDBC连接数据库与基本操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java可以用来干什么Java主要应用于:1....
    99+
    2023-06-14
  • Java基础之JDBC的数据库连接与基本操作
    目录一、JDBC概述二、JDBC操作数据库、操作表步骤三、JDBC体系结构与JDBC API四、注册与加载驱动五、建立连接(Connection)六、使用PreparedStatem...
    99+
    2024-04-02
  • Python中operator模块的操作符使用示例总结
    operator模块是python中内置的操作符函数接口,它定义了一些算术和比较内置操作的函数。operator模块是用c实现的,所以执行速度比python代码快。 逻辑操作 from operato...
    99+
    2022-06-04
    示例 模块 操作
  • 利用Python中xlwt模块操作excel的示例详解
    目录一、安装二、创建表格并写入三、设置单元格样式四、设置单元格宽度五、设置单元格背景色六、设置单元格内容对齐方式七、单元格添加超链接八、单元格添加公式九、单元格中输入日期十、合并行和...
    99+
    2024-04-02
  • nodejs基于mssql模块连接sqlserver数据库的示例分析
    这篇文章给大家分享的是有关nodejs基于mssql模块连接sqlserver数据库的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文实例讲述了nodejs基于mssq...
    99+
    2024-04-02
  • Python中操作mysql的pymysql模块详解
    前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。 本文测试python版本:2.7.11。mys...
    99+
    2022-06-04
    详解 模块 操作
  • python文件目录操作之os模块的示例分析
    这篇文章将为大家详细讲解有关python文件目录操作之os模块的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几...
    99+
    2023-06-15
  • Python中包与模块的示例分析
    这篇文章主要为大家展示了“Python中包与模块的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中包与模块的示例分析”这篇文章吧。什么是 Python 的包与模块包的定义:简...
    99+
    2023-06-29
  • python队列的基本操作示例
    这篇文章给大家分享的是有关python队列的基本操作示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语...
    99+
    2023-06-14
  • MongoDB数据库基础操作的示例分析
    这篇文章将为大家详细讲解有关MongoDB数据库基础操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为了保存网站的用户数据和业务数据,通常需要一个数据库。Mo...
    99+
    2024-04-02
  • websphere与mysql连接的示例分析
    这篇文章给大家分享的是有关websphere与mysql连接的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 我是jb9+websphere...
    99+
    2024-04-02
  • python操作mysql、excel、pdf的示例
    目录一、学习如何定义一个对象 二、学习如何连接MySQL并查询 三、学习如何读写csv 四、读取xlsx 五、读写PDF 一、学习如何定义一个对象 代码: #!/usr/bin...
    99+
    2024-04-02
  • MySQL与PHP的基础与应用专题之自连接
    概述 从今天开始, 小白我将带领大家一起来补充一下 数据库的知识. 自连接 自连接 (Self Join) 是一种特殊的表连接. 自连接指相互连接的表在物理上同为一张表, 但是逻辑...
    99+
    2024-04-02
  • MySQL与PHP的基础与应用专题之表连接
    概述 从今天开始, 小白我将带领大家一起来补充一下 数据库的知识. 表连接 表连接 (JOIN) 是在多个表之间通过连接条件. 使表之间发生关联, 进而能从多个表之间获取数据. ...
    99+
    2024-04-02
  • python基础之Socket套接字的示例分析
    这篇文章给大家分享的是有关python基础之Socket套接字的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不...
    99+
    2023-06-14
  • Python中shutil模块的常用文件操作函数用法示例
    os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作。比如说:绝对路径,父目录…… 但是,os文件的操作还应该包含移动 复制 打包 压缩 解压等操作,这些os模块都没...
    99+
    2022-06-04
    示例 函数 模块
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作