什么是SQLAlchemy?

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

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

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

为什么要使用SQLAlchemy?

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


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

1 定义映射关系

2 连接到数据库

3 通过对象操作数据库

  1. # 导入:
  2. from sqlalchemy import Column, Integer, String, create_engine
  3. from sqlalchemy.orm import sessionmaker
  4. from sqlalchemy.ext.declarative import declarative_base
  5.  
  6. # 创建对象的基类:
  7. Base = declarative_base()
  8.  
  9. # 定义User对象: 可以定义多个类
  10. class User(Base):
  11. # 表的名字:
  12. __tablename__ = 'user'
  13.  
  14. # 表的结构:
  15. id = Column(Integer, primary_key=True)
  16. name = Column(String(20))

  1. # 初始化数据库连接:
  2. engine = create_engine('mysql+mysqlconnector://root:yourpassword@localhost:3306/test')
  1. # 连接信息: '数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'
  2. # 这里是用 mysql.connector驱动(pip install mysql),
  3. # Python3可以使用pymysql驱动 'mysql+pymysql://......'  
  4. # 只能连接到已经存在的数据库,不能新建
  1.  
  1. # 自动创建表
    Base.metadata.create_all(engine)
  2.  
  3. # 创建DBSession类型:
  4. DBSession = sessionmaker(bind=engine)

  5. # 操作数据库(增删改查)
  6. session = DBSession()
  1. session对象可以通过三种方式操作数据库:
  2. A 通过实例对象 session.add(User(id=3, name='zoro')) delete ...
  3. B 原生SQL语句 session.execute('select * from user where id=%d' % 3)
  4. C 通过SQL表达式
  1.   session.execute('SELECT * FROM user WHERE id=?', {'param': 5})
  1.  
  1. new_user = User(id='', name='Bob')
  2. session.add(new_user)
  3. session.commit()
  4. session.close()

SQLAlchemy入门的更多相关文章

  1. (转)SQLAlchemy入门和进阶

    URL:https://zhuanlan.zhihu.com/p/27400862 https://www.cnblogs.com/mrchige/p/6389588.html---SQLAlchem ...

  2. sqlalchemy入门记录

    前言 发现翻译全文时间比较久,所以先整个简单的使用说明吧 安装SQLAlchemy pip install sqlalchemy 查看SQLAlchemy版本 In [1]: import sqlal ...

  3. Python SQLAlchemy入门教程

    本文将以Mysql举例,介绍sqlalchemy的基本用法.其中,Python版本为2.7,sqlalchemy版本为1.1.6. 一. 介绍 SQLAlchemy是Python中最有名的ORM工具. ...

  4. sqlalchemy 入门

    ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上. 在Python中,最有名的ORM框架是SQLAlchemy. # 导入: from sqlalche ...

  5. 后端API入门到放弃指北

    后端API入门学习指北 了解一下一下概念. RESTful API标准] 所有的API都遵循[RESTful API标准]. 建议大家都简单了解一下HTTP协议和RESTful API相关资料. 阮一 ...

  6. python ORM - sqlalchemy 操作使用

    python操作数据库 使用 ORM - sqlalchemy,pymsql 安装: pip install pymsq pip install sqlalchemy 一. '''连接数据库'''   ...

  7. SQlALchemy session详解

    系列文章: Python SQLAlchemy入门教程 概念 session用于创建程序和数据库之间的会话,所有对象的载入和保存都需通过session对象 . 通过sessionmaker调用创建一个 ...

  8. SQLAlchemy 教程 —— 基础入门篇

    SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLA ...

  9. SQLAlchemy 快速入门、基础知识

    SQLAlchemy 是Python 编程语言下的一款开源软件.提供了SQL工具包及对象关系映射(ORM)工具. ORM, 全称Object Relational Mapping, 中文叫做对象关系映 ...

随机推荐

  1. HashMap 死循环的探究

    大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下http://zhangshixi.iteye.com/blog/672697 的分析.因为是链表结构,那么就 ...

  2. 结构-行为-样式-Js排序算法之 直接插入排序

    最新因工作原因需要接触到算法,之前学习C++的时候有接触过算法,Javascript中实现算法其实也是大同小异.下面我讲下第一个实现的排序算法--直接插入排序.基本实现思路:假定一个数组中前n(n&g ...

  3. python数据类型以及模块的含义

    print(sys.path) #打印环境变量 print(sys.argv) #打印相对路径 print(sys.argv[1]) #打印对应的参数 1.在python最上有时候会导入os模块,表示 ...

  4. Flexible 弹性盒子模型之CSS flex-wrap 属性

    实例 让弹性盒元素在必要的时候拆行: display:flex; flex-wrap: wrap; 复制 效果预览 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟在 -webki ...

  5. configure, make, make install都做了什么

    1. 我的理解./configure:  确保接下来的make以及make install所依赖的文件没有问题make:  build编译连接生成可执行程序make install: 将编译好的可执行 ...

  6. 在server2012安装tfs遇到的问题:KB2919355

    参考资料:http://blog.csdn.net/wo_984633714/article/details/52869851 安装tfs2015的时候,提示需要安装KB2919355的更新.然后我就 ...

  7. 如何解决sql server定时作业调用Kettle job出错

    错误信息: Unable to list jar files in plugin folder 'C:\Windows\system32\config\systemprofile\.kettle\pl ...

  8. MariaDB数据解压版安装(10.0.16)

    官网下载地址:https://downloads.mariadb.org/    (自己选择版本下载) 在windows 7 下安装 1.下载到解压版安装文件mariadb-10.0.16-win32 ...

  9. hibernate、easyui、struts2整合

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 一个用于上传文件的servlet

    1.jsp页面操作文件: <%@ page language="java" import="java.util.*" pageEncoding=" ...