第二篇:操縱MySQL資料庫(2) - 基於ORM思想的SQLAlchemy庫

穆晨發表於2017-05-20

前言

       本文講解在Python語言中使用SQLAlchemy庫操縱MySQL資料庫的方法。

       由於具體內容涉及較多,本文僅以插入及展示資料為例,更多內容請查閱有關文件。

ORM

       ORM也即物件 - 關係對映。

       在前文中,操縱的物件針對資料庫中的關係表。而ORM機制能讓你的處理物件由這些錶轉換成Python中的表物件。

       這樣的機制意義不小,它能讓你在不瞭解SQL語句的條件下使用資料庫。

準備工作

1. 安裝Python和MySQL;
2. 安裝SQLAlchemy。("easy_install sqlalchemy"即可)。

總體步驟

1. 建立一個資料庫;
2. 匯入SQLAlchemy庫相關內容 (詳見下面程式碼展示部分);
3. 定義表物件結構;
4. 建立資料庫連線引擎;
5. 基於 4 中建立的引擎建立一個會話型別;
6. 定義會話物件;
7. 定義並初始化表物件;
8. 插入表物件;
9. 關閉會話。

程式碼示例

 1 # -*- coding: utf-8 -*-
 2 # ================================================
 3 #  作者: 方萌
 4 #  建立時間: 20**/**/**
 5 #  版本號: 1.0
 6 #  聯絡方式: 1505033833@qq.com
 7 # ================================================
 8 # sqlalchemy 相關模組
 9 from sqlalchemy import Column, String, INT, create_engine
10 from sqlalchemy.orm import sessionmaker
11 from sqlalchemy.ext.declarative import declarative_base
12 # 表物件的基類:
13 Base = declarative_base()
14 # 定義User表物件
15 class User(Base):
16     # 表名:
17     __tablename__ = 'testTable'
18     # 表的結構:
19     name = Column(String(20), primary_key=True)
20     age = Column(INT)
21 # 建立資料庫連線引擎
22 engine = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/testDB')
23 # 建立DBSession型別
24 DBSession = sessionmaker(bind=engine)
25 # 建立session物件
26 session = DBSession()
27 # 建立新User物件
28 new_user = User(name='方萌ORM', age='25')
29 # 新增到session
30 session.add(new_user)
31 # 提交即儲存到資料庫
32 session.commit()
33 # 關閉session
34 session.close()

執行結果

       

小結

       基於ORM機制的庫還有很多,可根據實際需要進行選擇。

       本文旨在講述ORM的思想以及展示基本使用套路。更多高階的用法(如建立表,建立外來鍵關係等)請查閱相關文件。

相關文章