sqlalchemy增删改查

## test_module.py
from user_modules import User,session

def add_user():
    person=User(username='haha',passwd='123')
    #session.add(person)
    session.add_all([
        User(username='nanian', passwd='123qw'),
        User(username='nihao', passwd='123')
    ])

    session.commit()

def search_user():
    row=session.query(User).all()
    row =session.query(User).filter_by(id=1).all()
##filter比filter_by查询麻烦,filter需带入类名,加==条件
    row =session.query(User).filter(User.username=='nanian').all()
    #print(row)
    print(row[0].locked)
#还可以直接在user_modules写好查询函数

def update_user():
    row=session.query(User).filter_by(username='nanian').update({User.passwd:'123qwe'})
    session.commit()
def delete_user():
    row=session.query(User).filter_by(username='haha')[0]
    session.delete(row)
    session.commit()
if __name__=='__main__':
    #add_user()
    #search_user()
#调用module写好的查询条件查询
    #print(User.by_name('nanian'))
    #update_user()
    delete_user()
View Code
## user_modules.py
from datetime import datetime
from sqlalchemy import Column,Integer,String,Boolean,DateTime
from connect import Base,session

class User(Base):
    __tablename__='user'
    id=Column(Integer,primary_key=True,autoincrement=True)
    username=Column(String(20),nullable=False)
    passwd=Column(String(50),nullable=False)
    createtime=Column(DateTime,default=datetime.now)
    _locked=Column(Boolean,default=False,nullable=False)
    #在modules中写好查询条件,使用时直接调用
    @classmethod
    def all(cls):
        return session.query(cls).all()
    @classmethod
    def by_name(cls,username):
        return session.query(cls).filter_by(username=username).all()
    @property
    def locked(self):
        return self._locked

    def __repr__(self):
        return '<User(id=%s,username=%s,passwd=%s,createtime=%s,_locked=%s)>'%(
          self.id,
          self.username,
          self.passwd,
          self.createtime,
          self._locked
        )
if __name__=='__main__':
    Base.metadata.create_all()

 

posted @ 2017-10-29 22:03  nanaindi  阅读(503)  评论(0编辑  收藏  举报