Python基础——SQLAlchemy

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

若是从数据库查到几条数据,须要在Python中表示出来,若是没学ORM技术,则会使用tuple表示,由于tuple类型的数据不可变。也能够经过类的形式体现出来。mysql

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

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

2、SQLAlchemy 的安装  与 初始化链接  安全

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

二、打开虚拟机,进入MySQL 建立对应的库 sqlalchemy 并受权.net

[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)对象

三、初始化链接 sqlalchemy   语法结构以下: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语句,能够关闭;

运行结果:

      

3、SQLAlchemy 的操做使用

一、经过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()

二、经过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  则该字段为主键。

相关文章
相关标签/搜索