天天看点

sqlalchemy 简单实例

本文地址:http://blog.csdn.net/spch2008/article/details/9014559

[python]  view plain copy print ?

  1. from sqlalchemy import *  
  2. from sqlalchemy.orm import sessionmaker, mapper  
  3. from obj.dbobj import User  
  4. def init_db():  
  5.     engine = create_engine("mysql://root:[email protected]/chat")  
  6.     metadata = MetaData()  
  7.     table = Table('users', metadata,  
  8.                     Column('user_id', String(20), primary_key=True),  
  9.                     Column('user_pwd', String(20))  
  10.                  )  
  11.     metadata.create_all(engine)  
  12.     mapper(User, table)  
  13.     Session = sessionmaker(engine)  
  14.     return Session()  
  15. class database:  
  16.     def __init__(self, session):  
  17.         self.session = session  
  18.         self.query   = self.session.query(User)  
  19.     def getUser(self, user_id):  
  20.         return self.query.get(user_id)  
  21.     def getPwd(self, user_id):  
  22.         user = self.getUser(user_id)  
  23.         return user.pwd()  
  24.     def insertInfo(self, user_id, pwd):  
  25.         user = User(user_id, pwd)  
  26.         self.session.add(user)  
  27.         self.session.commit()  
  28.     def deleteInfo(self, user_id):  
  29.         user = self.getUser(user_id)  
  30.         self.session.delete(user)  
  31.         self.session.commit()  
  32.     def getCount(self):  
  33.         return self.query.count()  
  34.     def getAllUser(self):  
  35.         return self.query.all()  
  36.     def modifyPwd(self, user_id, pwd):  
  37.         self.query.filter(User.user_id == user_id).update({"user_pwd" : pwd})  
  38.         self.session.commit()  
  39. def getDB():  
  40.     engine = init_db()  
  41.     db = database(engine)  
  42.     return db