sqlalchemy连接mysql数据库_python使用sqlalchemy连接mysql数据库

本文介绍了在Python中使用SQLAlchemy连接MySQL数据库的步骤。首先解释了ORM的概念,然后指导如何安装pymysql和SQLAlchemy。接着展示了如何创建连接引擎、元数据,以及如何定义并创建数据库表结构。最后通过执行`metadata.create_all()`来在数据库中创建表。
摘要由CSDN通过智能技术生成

环境:centos7+python2.7.5+sqlalchemy

sqlalchemy是python当中比较出名的orm程序。在python中,使用sqlalchemy连接mysql数据库进行操作非常简单方便。

什么是orm:

orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。

安装sqlalchemy

在使用sqlalchemy之前要先给python安装mysql驱动,这里推荐使用pymysql。  下载地址:https://github.com/PyMySQL/PyMySQL

python setup.py install

安装后检查

>>>import pymysql

然后再安装sqlalchemy 。 下载地址:https://github.com/zzzeek/sqlalchemy

python setup.py install安装后检查

>>>import sqlalchemy

如何使用sqlalchemy连接mysql?

通过import导入必要的包

from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey

创建元数据

什么是元数据?元数据就是描述数据的数据,举个简单的例子,小明身高175cm,体重65kg,性别男。其中身高,体重,性别就是元数据。当我们创建好连接引擎以后可以通过这个引擎抓取元数据。

metadata=MetaData(engine)

通过MetaData()方法创建了metadata实例,在这个方法里面带上engine的目的是绑定要连接引擎,当我们对这个metadata实例进行操作的时候就会直接连接到数据库。

创建一个连接引擎

engine=create_engine("mysql+pymysql://root:123456@localhost:3306/test",echo=True)

我们将连接引擎放到engine里面方便后面使用。

create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库",其他参数)

上文当中echo=True是开启调试,这样当我们执行文件的时候会提示相应的文字。

添加表结构

设定好连接引擎和元数据,让我们向mysql里面创建表结构来进行测试。

user_table = Table('user',metadata,

Column('id',Integer,primary_key=True),

Column('name',String(20)),

Column('fullname',String(40)),

)

address_table = Table('address', metadata,

Column('id', Integer, primary_key=True),

Column('user_id', None, ForeignKey('user.id')),

Column('email', String(128), nullable=False)

)

其中Table()方法用来创建表,第一个参数为表名,第二是存入元数据,后面的参数使用Column()方法将数据库当中每一个字段的数据参数设置好。

执行创建

metadata.create_all()

因为已将将表结构存到了metadata里面,然后让metadata执行create_all()方法,这样就向数据库里创建了user和address表。

完成代码

#vim sqlalchemy_test1.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值