zoukankan      html  css  js  c++  java
  • 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()
    KEEP LEARNING!
  • 相关阅读:
    OpenJudge 3765(最大权闭合图,最小割
    多校8-1010 HDU5389 (dp
    570D Codeforces Round #316 (Div. 2) D(dfs序,时间戳,二分
    CodeForces
    hiho一下!
    HDU 4123(树上任意点到其他点的最远距离,rmq
    Oracle创建索引;查询索引
    HBase启动和停止命令
    flink dom4j冲突异常
    flink checkpoint状态储存三种方式选择
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5514919.html
Copyright © 2011-2022 走看看