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()
相关文章
相关标签/搜索