Python基础——SQLAlchemy

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

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

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

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

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

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

210102_lqbN_3821557.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语句,可以关闭;

运行结果:

      212505_yY5O_3821557.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  则该字段为主键。

转载于:https://my.oschina.net/u/3821557/blog/1810469

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值