04:sqlalchemy操作数据库 不错
目录:
- 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作)
- 1.2 安装sqlalchemy并创建表
- 1.3 使用sqlalchemy对表基本操作
- 1.4 一对多外键关联
- 1.5 sqlalchemy多对多关联
1.1 ORM介绍(作用:不用原生SQL语句对数据库操作)返回顶部
1、什么是orm(orm是一种术语而不是软件)
1)orm英文全称object relational mapping,就是对象映射关系程序
2)简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的
3)为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系
4)这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,
而不用直接使用sql语言

2、ORM作用
1)隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单
易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来
2)ORM使我们构造固化数据结构变得简单易行。
3、ORM缺点
1)无可避免的,自动化意味着映射和关联管理,代价是牺牲性能
2)现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。
1.2 安装sqlalchemy并创建表返回顶部
1、在win10中直接用pip3安装即可
pip3 install sqlalchemy
2、sqlalchemy可以支持多种数据库的连接使用:下面是常用的几种
MySQL-Python
mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
pymysql
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
MySQL-Connector
mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
cx_Oracle
oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
更多详见: http://docs.sqlalchemy.org/en/latest/dialects/index.html
3、sqlalchemy说明
1) sqlalchemy的底层还是对mysqldb, pymysql的封装
2) 我们不用写原生SQL了,但是sqlalchemy执行的时候还是要用原生SQL
3) Sqlalchemy就是通过使用mysqldb, pymysql等来执行原生SQL语句
4、创建表
1. 使用原生sql创建表
CREATE TABLE user (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(32),
password VARCHAR(64),
PRIMARY KEY (id)
)
2. 使用sqlalchemy创建表的两种方法
法1:使用sqlalchemy创建表(不常用)
法2:使用sqlalchemy创建表(常用方法)

#! -*- coding:utf8 -*-
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker '''第一步:连接数据库'''
engine = create_engine("mysql+pymysql://root:1@127.0.0.1/bsp?charset=utf8")
# engine = create_engine("mysql+pymysql://root:1@127.0.0.1/tomdb",encoding='utf-8', echo=True) '''附加: 无论是增删改查都要先创建与数据库的会话session class'''
#创建与数据库的会话session class ,注意,这里返回给session的是个class类,不是实例
Session_class = sessionmaker(bind=engine) #创建用于数据库session的类
session = Session_class() #这里才是生成session实例可以理解为cursor '''第二步:操作数据库'''
#1、查看mysql中有哪些数据库
dbs=session.execute('show databases;').fetchall() #2、切换当前数据库
session.execute('use bsp;') #3、查询时过滤出第一条
row1=session.execute('select * from relations_department where Id>1;').first()
fid_id = row1.fid_id #4、一对多关联查询: 根据上面查询的父部门id 可以找到父部门信息
row2=session.execute('select * from relations_department where Id=%s;'%fid_id).first()
print row2.name # 政府事业部

1.3 使用sqlalchemy对表基本操作返回顶部
1.4 一对多外键关联返回顶部
1.5 sqlalchemy多对多关联返回顶部
1.6 sqlalchemy执行原生SQL语句
1、执行原生SQL语句
2、找到当前数据库中所有非空表
04:sqlalchemy操作数据库 不错的更多相关文章
- Python3.x:SQLAlchemy操作数据库
Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...
- 04:sqlalchemy操作数据库
目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...
- python如何用sqlalchemy操作数据库
工具:mysql python sqlalchemy ---------------------------------------- 准备工作: 1.安装mysql 如果是window环境请参考 ...
- SQLAlchemy 操作数据库
首先安装 SQLAlchemy install PyMySQL install sqlalchemy 代码: #!/usr/bin/env python # encoding: utf-8 " ...
- sqlalchemy操作数据库(二)
sqlalchemy的基本操作 表结构如下: from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative importdec ...
- python 连接操作数据库(二)
一.我们接着上期的博客继续对ORM框架进行补充,顺便把paramiko模块也给大家讲解一下: 1.ORM框架: 在连接操作数据库的第一个博客中也已经说了,sqlalchemy是一个ORM框架,总结就是 ...
- 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库
MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...
- 13、Flask实战第13天:SQLAlchemy操作MySQL数据库
安装MySQL 在MySQL官网下载win版MySQL 双击运行 后面根据提示设置密码然后启动即可,这里我设置的密码是:123456 我们可以通过Navicat客户端工具连接上MySQL addres ...
- 【tips】ORM - SQLAlchemy操作MySQL数据库
优先(官方文档SQLAlchemy-version1.2): sqlalchemy | 作者:斯芬克斯 推荐一(长篇幅version1.2.0b3):python约会之ORM-sqlalchemy | ...
随机推荐
- API接口幂等性框架设计
表单重复提价问题 rpc远程调用时候 发生网络延迟 可能有重试机制 MQ消费者幂等(保证唯一)一样 解决方案: token 令牌 保证唯一的并且是临时的 过一段时间失效 分布式: redis+to ...
- 团体程序设计天梯赛 L2-018. 多项式A除以B(模拟)
题意:给你A,B两个多项式,问你A/B的值:注意多项式给你的是每个式子的指数与系数:保留到一位小数,如果出现系数为0(保留后也是)的情况,请不要输出它,如果没有非系数为0的情况就输出特殊 题解:多项式 ...
- Android中Fragment的Hide和Show
我们都知道,Fragment动态添加的时候我们可以使用FragmentTransaction的add和replace方法,replace方法就等效于对这个Fragment先执行remove(),再执行 ...
- Scala学习手记1 - 快速体验
又重新开始了scala的学习,因为中断了太长时间,所以这次还得从零开始.学习的过程就记录在这个博客上了. 这次学习的教程是<scala程序设计 java虚拟机多核编程实战>,我在多看上买了 ...
- lucene学习-2 - 一个示例
接下来我会写一个lucene的实例.实际上在搜索引擎上随便搜索下都能找到这样的东西.不过还是写一下吧,这也是我学习的经历. package com.zhyea.doggie; import java. ...
- PhpStorm怎么用,PhpStorm常用快捷键教程
设置快捷键:File -> Settings -> IDE Settings -> Keymap -> 选择“Eclipse” -> 然后“Copy”一份 ->再个 ...
- VS2015自带v120的Platform Toolset
在VS2015安装组件时,勾选 “Windows 8.1 和 Windows Phone 8.0/8.1”下面的“工具和 Windows SDK”,将会安装Visual Studio 2013 (v1 ...
- 四十三 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理
1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字段的类型以及相关属性elasticsearch会根据json源数据的基础类型猜测你想要的字段映射,将输入的数据转换成可搜索的索引项, ...
- APP埋点:页面统计与事件统计该如何入手?
我们平时所说的埋点,可以大致分为两部分,一部分是统计APP页面访问情况,即页面统计:另外一部分是统计APP内的操作行为,及自定义事件统计. 一.页面统计 页面统计,可以统计应用内各个页面的访问次数(P ...
- Tiny210用户手册笔记
核心板 CPU 处理器: Samsung S5PV210,基于 CortexTM-A8,运行主频 1GHz 内置 P ...