Python3 集成SQLAlchemy ORM 框架:实现MySQL 表初始化

什么是ORM

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


什么是SQLAlchemy 

SQLAlchemy是python的ORM框架

安装SQLAlchemy 框架,前提条件必须安装PyMySQL 框架

pip install pymysql

再安装SQLAlchemy 框架

pip install sqlalchemy

 

如何使用SQLAlchemy  连接MySQL数据库并创建表

1、通过import 关键字,导入依赖的包

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

简单说明导入的包功能:

create_engine:创建数据库引擎(连接mysql 数据库核心)

Table:创建表

Column:创建表字段

Integer:指定表字段的数据类型(整形)

String:指定表字段的数据类型(字符串)

MetaData:元数据类型

ForeignKey:指定表的外键关系

2、创建一个数据库引擎

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

3、创建元数据

metadata = MetaData(engine)

4、添加表结构数据

user = 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)
                      )

5、执行表创建

metadata.create_all()

注意:在第四步时已经将表结构存到了metadata里面,然后让metadata执行create_all()方法,这样就向指定的数据库里创建了user和address表。

6、完整的功能源码:

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


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

user = 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)
                      )

metadata.create_all()

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值