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  則該字段爲主鍵。

相關文章
相關標籤/搜索