zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    面向对象之单例模式
    面向对象之元类
    面向对象高级1
    面向对象进阶2
    面向对象进阶1
    面向对象基础
    MySQL事务
    【应用容器引擎】Docker笔记
    【Spring Boot】三、嵌入式的Servlet容器
    MySQL优化分析
  • 原文地址:https://www.cnblogs.com/lajiao/p/7751555.html
Copyright © 2011-2022 走看看