Fork me on GitHub

SQLAlchemy入门

什么是SQLAlchemy?

  是Python连接SQL数据库的一种方式,需要通过驱动来连接。  

  是Python中使用最广泛的ORM(对象关系映射)工具之一,即把数据库中的二维表结构映射成一个list对象,list对象的每一个元素是一个tuple,例如:  

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

 

为什么要使用SQLAlchemy?

  可以通过对象来操作数据库,避免了麻烦的sql语句

 


 

如何使用SQLAlchemy连接MySQL数据库?

1 定义映射关系

2 连接到数据库

3 通过对象操作数据库

# 导入:
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()

 

posted @ 2016-05-21 16:00  Roronoa__Zoro  阅读(435)  评论(0编辑  收藏  举报