zoukankan      html  css  js  c++  java
  • MySQL表结构映射为Python中的对象 python (SQLAlchemy)

    原文:https://www.jb51.net/article/63585.htm

    这篇文章主要介绍了简单地把MySQL表结构映射为Python中的对象的方法,用到了Python中的SQLAlchemy库,需要的朋友可以参考下

    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()
  • 相关阅读:
    [转载]如何让企业网站发挥出应用的功能?
    [转载]创业流程
    velocity foreach跳出循环
    【转】cgi技术
    webx3 日志系统级别问题
    ibatis主键自增用法
    【转】java内部类总结
    java初始化顺序
    一点一点学习Ubuntu
    jboss 的端口修改
  • 原文地址:https://www.cnblogs.com/lshan/p/13159029.html
Copyright © 2011-2022 走看看