把MySQL表结构映射为Python中的对象的教程


Posted in Python onApril 07, 2015

ORM

mysql的表结构是二维表,用python的数据结构表示出来就是一个列表,每一个记录是一个tuple。如下所示:

[('1', ''huangyi),('2', ''letian),('3', 'xiaosi')]

这一行并不便于看出表的结构,可以把它换成对象的形式。

class User(object):
  def __init__(self, id, name):
    self.id = id
    self.name = name

得到:
 

[ 
User('1', 'huangyi'),
 
User('2', 'letian'),
 
User('3', 'xiaosi')
]

这就是ORM(Object-relational Mapping),把关系数据库的表结构映射到对象上。我们可以用SQLAlchemy框架来进行映射。
SQLAlchemy
 

#!/usr/bin/env python
#-*-coding:utf-8 -*-
 
from sqlalchemy import Column, String, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
 
Base = declarative_base()
 
class User(Base):
  __tablename__ = 'user'
  id = Column(String(20), primary_key=True)
  name = Column(String(20))
 
engine = create_engine('mysql+mysqlconnector://root:XXXXX@localhost:3306/TUZHI')
DBSession = sessionmaker(bind=engine)
 
session = DBSession()
new_user = User(id='4', name='Huangyi')
session.add(new_user)
session.commit()
#session.close()
 
##进行查询
#session = DBSession()
user = session.query(User).filter(User.id=='4').one()
print 'type:', type(user)
print 'name:', user.name
session.close()

Python 相关文章推荐
Python 实现一个颜色色值转换的小工具
Dec 06 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Python读取YAML文件过程详解
Dec 30 Python
Python Process创建进程的2种方法详解
Jan 25 Python
Python requests库参数提交的注意事项总结
Mar 29 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 #Python
详解Python3.1版本带来的核心变化
Apr 07 #Python
初学Python函数的笔记整理
Apr 07 #Python
利用Python绘制数据的瀑布图的教程
Apr 07 #Python
浅析Python中的多进程与多线程的使用
Apr 07 #Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 #Python
Python多线程编程(七):使用Condition实现复杂同步
Apr 05 #Python
You might like
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
js实现右键菜单功能
2016/11/28 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python编程argparse入门浅析
2018/02/07 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
python 贪心算法的实现
2020/09/18 Python
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
超市实习总结自我鉴定
2013/09/19 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
商业项目策划方案
2014/06/05 职场文书
董事长岗位职责
2015/02/13 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
培训班通知
2015/04/25 职场文书
转学证明范本
2015/06/19 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书