把mysql表結構映射到python對象上

來源:互聯網
上載者:User

標籤:

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_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class User(Base):    __tablename__ = ‘user‘    id = Column(String(20), primary_key=True)    name = Column(String(20))engine = create_engine(‘mysql+mysqlconnector://root:[email protected]: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.namesession.close()

把mysql表結構映射到python對象上

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.