#!/bin/env python3 # -*- coding:utf-8 -*- # pythonä¸çæ°æ®åºDB-APIè¿åçæ°æ®ç»æ ''' [ ('1', 'Michael'), ('2', 'Bob'), ('3', 'Adam') ] ''' # ç¨classå®ä¾è¡¨ç¤º # æå ³ç³»æ°æ®åºçè¡¨ç»ææ å°å°å¯¹è±¡ä¸ï¼å³Object-Relational Mapping # ORMæ¡æ¶ ''' class User(object): def __init__(self, id, name): self.id = id self.name = name [ User('1', 'Michael'), User('2', 'Bob'), User('3', 'Adam') ] ''' # python ä¸çORMæ¡æ¶SQLAlchemy # # å¯¼å ¥: from sqlalchemy import Column, String, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base # å建对象çåºç±»: Base = declarative_base() # å®ä¹User对象: class User(Base): # 表çåå: __tablename__ = 'user' # 表çç»æ: id = Column(String(20), primary_key=True) name = Column(String(20)) # åå§åæ°æ®åºè¿æ¥:str engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/test') # å建DBSessionç±»å: DBSession = sessionmaker(bind=engine) # æäºORMæ¡æ¶ï¼æ·»å è®°å½å¯è§ä¸ºæ·»å User对象 # DBSession对象å¯è§ä¸ºå½åæ°æ®åºè¿æ¥ # å建session对象: session = DBSession() # å建æ°User对象: new_user = User(id='5', name='Bob') # æ·»å å°session: session.add(new_user) # æäº¤å³ä¿åå°æ°æ®åº: session.commit() # å ³ésession: session.close() # æ¥è¯¢User对象 # å建Session: session = DBSession() # å建Queryæ¥è¯¢ï¼filteræ¯whereæ¡ä»¶ï¼æåè°ç¨one()è¿åå¯ä¸è¡ï¼å¦æè°ç¨all()åè¿åææè¡: user = session.query(User).filter(User.id=='5').one() # æå°ç±»åå对象çname屿§: print('type:', type(user)) print('name:', user.name) # å ³éSession: session.close() # å®ä¹å ³ç³» class User(Base): __tablename__ = 'user' id = Column(String(20), primary_key=True) name = Column(String(20)) # ä¸å¯¹å¤: books = relationship('Book') class Book(Base): __tablename__ = 'book' id = Column(String(20), primary_key=True) name = Column(String(20)) # âå¤âç䏿¹çbook表æ¯éè¿å¤é®å ³èå°user表ç: user_id = Column(String(20), ForeignKey('user.id'))