zoukankan      html  css  js  c++  java
  • Python调用sqlAlchemy

     1 import logging
     2 from sqlalchemy import Column, String, create_engine
     3 from sqlalchemy.ext.declarative import declarative_base
     4 from sqlalchemy.orm import sessionmaker
     5 
     6 # 创建对象的基类
     7 Base = declarative_base()
     8 
     9 
    10 # 创建User对象
    11 class User(Base):
    12     # 使用InnoDB,UTF-8编码
    13     __table_args__ = {
    14         'mysql_engine': 'InnoDB',
    15         'mysql_charset': 'utf8'
    16     }
    17     # 表的名字
    18     __tablename__ = 'User'
    19     # 表结构
    20     id = Column(String(20), primary_key=True)
    21     name = Column(String(20))
    22 
    23 
    24 def make_connect():
    25     # 初始化数据库连接
    26     engine = create_engine("mysql+pymysql://root:123@localhost:3306/test", echo=True)
    27     # 创建所有Base子类表
    28     Base.metadata.create_all(engine)
    29     # 创建DBSession类型
    30     DBSession = sessionmaker(bind=engine)
    31     # 创建session
    32     session = DBSession()
    33     return session

    “mysql+pymysql”使用 MySQL-Pymysql 来连接,“root”和“123”分别是用户名和密码,“localhost”是数据库的域名,“test”是使用的数据库名,“charset”指定了连接时使用的字符集。

    添加数据:

    1   new_user = User(id='4', name='root')
    2     session = make_connect()
    3     session.add(new_user)
    4     try:
    5         session.commit()
    6     except BaseException as e:
    7         logging.exception(e)
    8     finally:
    9         session.close()

    添加结果:

     删除数据需要先查询数据再删除:

    1  session = make_connect()
    2     user = session.query(User).filter(User.id == '4').first()
    3     session.delete(user)
    4     try:
    5         session.commit()
    6     except BaseException as e:
    7         logging.exception(e)
    8     finally:
    9         session.close()

    删除结果:

     

     更新数据(依然先查询数据持久化后修改):

    1 session = make_connect()
    2     session.query(User).filter(User.id == '4').first().id = '1'
    3     try:
    4         session.commit()
    5     except BaseException as e:
    6         logging.exception(e)
    7     finally:
    8         session.close()

    以上将id=4 的数据查询出后id更新为1

  • 相关阅读:
    SecureCRT安装
    wmv12下安装centos7
    SpringMVC(十二):SpringMVC 处理输出模型数据之@ModelAttribute
    oracle之 redo过高诊断
    oracle之 手动创建 emp 表 与 dept 表
    oracle之 11.2.0.4 bbed安装
    oracle12c之 控制pdb中sga 与 pga 内存使用
    storm之 Storm 工作原理
    spark之 spark 2.2.0 Standalone安装、wordCount演示
    hadoop之 参数调优
  • 原文地址:https://www.cnblogs.com/CaesarLinsa/p/8388090.html
Copyright © 2011-2022 走看看