sql java python_Python基础——SQLAlchemy

一、ORM技术(对象关系映射)简介

如果从数据库查到几条数据,需要在Python中表示出来,如果没学ORM技术,则会使用tuple表示,因为tuple类型的数据不可变。也可以通过类的形式体现出来。

1、ORM思想:每张表都会有一个对应的类。类的属性和表的字段一一对应。

示例(通过类体现数据库)

二、SQLAlchemy 的安装  与 初始化连接

1、在Windows 环境下的pycharm 点击 Terminal  输入  pip  install SQLAlchemy

fafdd21d27306570ff5dab5dfd04b653.png

2、打开虚拟机,进入MySQL 创建对应的库 sqlalchemy 并授权

[root@JSH-01 ~]# mysql -uroot -p123456

mysql> create database sqlalchemy;

Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.00 sec)

3、初始化连接 sqlalchemy   语法结构如下:

from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:123456@192.168.6.137/sqlalchemy',echo=True)

print(engine)

命令解析:

create_engine()返回一个Engine的实例,并且它表示通过数据库语法处理细节的核心接口,在这种情况下,数据库语法将会被解释成python的类方法。

mysql+pymysql://root@123456@192.168.6.137/sqlalchemy  其中root是数据库的用户名,123456是密码;192.168.6.137 为数据库的IP地址;sqlalchemy 需要连接的库名。

echo参数为True时,会显示每条执行的SQL语句,可以关闭;

运行结果:

86f05ca2836de64de25e545ac503ccba.png

三、SQLAlchemy 的操作使用

1、通过SQL语句创建表格

from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:123456@192.168.37.128/sqlalchemy',echo=True)

print(engine)

cus = engine.connect() #类似于创建SQL游标

sql = '''create table student(id int not null,name VARCHAR(100),age int,address VARCHAR(100))'''

cus.execute(sql)

cus.close()

2、通过ORM方式创建表格

from sqlalchemy import create_engine

from sqlalchemy import Table

from sqlalchemy import Integer

from sqlalchemy import Column

from sqlalchemy import String

from sqlalchemy import MetaData

engine = create_engine('mysql+pymysql://root:123456@192.168.37.128/sqlalchemy') #创建与数据库的连接

metadata = MetaData(engine) #绑定数据源

user = Table("user",metadata,

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

Column("name",String(100)),

Column("tel",String(15)),

)

metadata.create_all(engine)

按照如上语句创建的表,相关参数如下:

① MetaData类:主要用于保存表结构,连接字符串等数据,是一个多表共享的对象。

② 创建与数据库的连接

engine = create_engine('mysql+pymysql://root:123456@192.168.37.128/sqlalchemy')

③ 绑定数据源

metadata = MetaData(engine)

④ 创建表(安全操作模式:即先判断该表是否存在;如果存在则不创建,如果不存在则创建)

metadata.create_all(engine)

⑤ Table类的构造函数       Table_ _init _ _(self, name, metadata, *args, **kwargs)

其中 name 定义表的名字; metadata 数据源;*args中的 Column类 定义表格中的列。

⑥Column类的构造函数    Column_ _init _ _(self, name, type_, *args, **kwargs)

其中 name 定义列的名字;type_ 类型(详见 sqlalchemy.types);

primary_key 如果为true  则该字段为主键。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值