把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的一些用法分享
Oct 07 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
Python+selenium实现截图图片并保存截取的图片
Jan 05 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
Python定时任务sched模块用法示例
Jul 16 Python
python同时遍历数组的索引和值的实例
Nov 15 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
浅析Python 引号、注释、字符串
Jul 25 Python
用opencv给图片换背景色的示例代码
Jul 08 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python 用户输入和while循环的操作
May 23 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 iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php取出数组单个值的方法
2018/03/12 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
如何运行Python程序的方法
2013/04/21 Python
Python中title()方法的使用简介
2015/05/20 Python
Python实现二叉堆
2016/02/03 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python自定义异常实例详解
2017/07/11 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
Python实现把类当做字典来访问
2019/12/16 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
python 实现图片裁剪小工具
2021/02/02 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
高三政治教学反思
2014/02/06 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
员工安全责任书范本
2014/07/24 职场文书
党员四风问题个人对照检查材料
2014/10/26 职场文书
优秀党员先进材料
2014/12/18 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP