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()
  • 相关阅读:
    撸羊毛的一些心得体会
    GET和POST的区别
    接口测试基础
    Charles老版本教程
    【2019】Charles视频教程,接口测试工具最新教程
    关于Synchronized研伸扩展
    Java多线程之线程的协作
    十七.jmeter分布式测试
    十六.jmeter链接mysql测试
    十五.jmeter FTP服务器连接
  • 原文地址:https://www.cnblogs.com/lshan/p/13159029.html
Copyright © 2011-2022 走看看