SQLAlchemy入門

什麼是SQLAlchemy?mysql

  是Python鏈接SQL數據庫的一種方式,須要經過驅動來鏈接。  sql

  是Python中使用最普遍的ORM(對象關係映射)工具之一,即把數據庫中的二維表結構映射成一個list對象,list對象的每個元素是一個tuple,例如:  數據庫

id  name
1 'Michael'
2 'Bob'
3 'Adam'
[
         ==>                  ('1', 'Michael'), ('2', 'Bob'), ('3', 'Adam') ]

 

爲何要使用SQLAlchemy?json

  能夠經過對象來操做數據庫,避免了麻煩的sql語句session

 


 

如何使用SQLAlchemy鏈接MySQL數據庫?工具

1 定義映射關係spa

2 鏈接到數據庫code

3 經過對象操做數據庫orm

# 導入:
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 建立對象的基類:
Base = declarative_base()

# 定義User對象: 能夠定義多個類
class User(Base):
    # 表的名字:
    __tablename__ = 'user'

    # 表的結構:
    id = Column(Integer, primary_key=True)
    name = Column(String(20))


# 初始化數據庫鏈接:
engine = create_engine('mysql+mysqlconnector://root:yourpassword@localhost:3306/test')
# 鏈接信息: '數據庫類型+數據庫驅動名稱://用戶名:口令@機器地址:端口號/數據庫名'
# 這裏是用 mysql.connector驅動(pip install mysql), 
# Python3能夠使用pymysql驅動  'mysql+pymysql://......'  
# 只能鏈接到已經存在的數據庫,不能新建
 
 

# 自動建立表
Base.metadata.create_all(engine)

# 建立DBSession類型: DBSession = sessionmaker(bind=engine)
# 操做數據庫(增刪改查) session = DBSession()
session對象能夠經過三種方式操做數據庫:
A 經過實例對象 session.add(User(id=3, name='zoro')) 、 delete、 ...
B 原生SQL語句 session.execute('select * from user where id=%d' % 3)

C 經過SQL表達式
  session.execute('SELECT * FROM user WHERE id=?', {'param': 5})
 
 

new_user
= User(id='5', name='Bob') session.add(new_user) session.commit() session.close()
相關文章
相關標籤/搜索