把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字符串连接的N种方式总结
Sep 17 Python
跟老齐学Python之从格式化表达式到方法
Sep 28 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
May 08 Python
python 文件转成16进制数组的实例
Jul 09 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
Python Selenium参数配置方法解析
Jan 19 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
python代码实现TSNE降维数据可视化教程
Feb 28 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 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
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
js自定义事件代码说明
2011/01/31 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
javascript如何写热点图
2015/12/08 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
Python中的引用和拷贝浅析
2014/11/22 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
成人大专自我鉴定范文
2013/10/19 职场文书
中专生自我鉴定书范文
2013/12/28 职场文书
团组织关系介绍信
2014/01/12 职场文书
公司口号大全
2014/06/11 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
银行给客户的感谢信
2015/01/23 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
2016年国陪研修感言
2015/11/18 职场文书