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

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
sqlalchemy
python mysql 表结构、python 映射、python 内存映射、python 字典映射、python 端口映射,以便于您获取更多的相关知识。

时间: 2024-09-24 13:42:08

把MySQL表结构映射为Python中的对象的教程_python的相关文章

python中的多线程实例教程_python

本文以实例形式较为详细的讲述了Python中多线程的用法,在Python程序设计中有着比较广泛的应用.分享给大家供大家参考之用.具体分析如下: python中关于多线程的操作可以使用thread和threading模块来实现,其中thread模块在Py3中已经改名为_thread,不再推荐使用.而threading模块是在thread之上进行了封装,也是推荐使用的多线程模块,本文主要基于threading模块进行介绍.在某些版本中thread模块可能不存在,要使用dump_threading来代

在Python中使用模块的教程_python

Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env python # -*- coding: utf-8 -*- ' a test module ' __author__ = 'Michael Liao' import sys def test(): args = sys.argv if len(args)==1: print 'Hello, world!' elif len(a

Python中自定义函数的教程_python

在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数为例: def my_abs(x): if x >= 0: return x else: return -x 请自行测试并调用my_abs看看返回结果是否正确. 请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回.因此,函数内部通过条件判断和循环可以实现非常复杂

Python中的Numpy入门教程_python

1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数.如果接触过matlab.scilab,那么numpy很好入手. 在以下的代码示例中,总是先导入了numpy: 复制代码 代码如下: >>> import numpy as np>>> print np.version.version1.6.2

MySQL表结构的同步

现在全身心投入到MySQL中. 项目要求:将开发环境中的数据库的修改同步至线上环境. 开发者给出的解决办法是:利用像Python 中的South框架,自动将开发环境的变更同步至生产环境.这个对于DBA来说是无法承受的(除非是创建数据库结果类似的语句).数据库变更在生产环境执行,必须事先经过评估.对业务的影响降到最低,这个就设计到了重新设计索引,或者采用在线修改工具之类的.本文暂时先不讨论,下面给出表同步的解决办法. 以前的做法是通过navicate的工具将一个一个的数据库进行对比或者自己写脚本M

mysql-schema-sync v0.2 mysql表结构自动同步工具

mysql-schema-sync 是一款使用go开发的.跨平台的.绿色无依赖的 MySQL 表结构自动同步工具. 用于解决多个环境数据库表结构不同步问题. 支持功能: 同步 新表 同步 字段 变动:新增.修改.删除 同步 索引 变动:新增.修改.删除 支持 预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新 表.字段.索引 支持本地比线上额外多一些表.字段.索引 文章转载自 开源中国社区[https://www.oschina.net]

查看mysql表结构和表创建语句的方法(转)

查看mysql表结构的方法有三种:1.desc tablename;例如:要查看jos_modules表结构的命令:desc jos_modules;查看结果:mysql> desc jos_modules; +------------------+---------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-

《Python游戏编程入门》——1.3 Python中的对象

1.3 Python中的对象 Python是面向对象编程语言,这意味着,它至少支持一些面向对象编程概念.现在,我们将花一些时间来介绍这些概念,因为这是一种编写代码的高效方式.面向对象编程(OOP)是一种方法学,也就是做事情的方式.在计算机科学中,有几种较大的."伞状的"方法学,也就是说,定义了编程语言的功能的方法学.要让我们的技能成为可以传播的,方法学对于这个产业来说很重要.如果每个公司使用他们自己的方法学,那么,为该公司工作的过程中所获取的技能,对于另一个不同的组织来说将会是无用的.

在Python中marshal对象序列化的相关知识

  这篇文章主要介绍了在Python中marshal对象序列化的相关知识,是Python进阶学习中序列化相关的知识,需要的朋友可以参考下 有时候,要把内存中的一个对象持久化保存到磁盘上,或者序列化成二进制流通过网络发送到远程主机上.Python中有很多模块提供了序列化与反序列化的功能,如:marshal, pickle, cPickle等等.今天就讲讲marshal模块. 注意: marshal并不是一个通用的模块,在某些时候它是一个不被推荐使用的模块,因为使用marshal序列化的二进制数据格