zoukankan      html  css  js  c++  java
  • SQLAlchemy对数据基本操作

    先前在这篇文章有些创建操作介绍->Mysql安装和操作(flask)

    以下为读《深入理解Flask》

    对各种数据储存策略有四种基本功能类型:添加,读取,修改,删除

    增加数据

    增加数据

    读取数据

    读取数据也许是操作种类比较复杂的功能类型

    一个简单的例子

    >>> users=User.query.all()
    >>> users
    [<User 'test'>]
    

    一些常用语句(可以链式调用)

    User.query.all ##查询User模型在数据库中所有行
    User.query.h2mit(5).all ##指定行数返回
    User.query.first() ##返回一行数据
    User.query.filter(User.id == 2).first().name
    User.query.get(2).name ##以主键获取,等效于上句
    Post.query.paginate(2,10) ##返回2-10的对象,这个设计为了分页
    User.query.filter_by(username="test").all() ##精确过滤
    User.query.filter(User.id>1).all() ##user.id大于1的
    ##filter参数接受任何python表达式
    User.query.order_by(User.username).all() ##正向排序
    User.query.order_by(User.username.desc()).all() ##反向排序
    ##order_by控制排序方式
    

    orderby

    paginate-Add:假如命令page=Post.query.paginate(2,10)

    page.items ##返回这一页包含数据
    page.page ##页数
    page.pages ##总页数
    page.has_prev OR page.has_next ##上一页或者下一页是否有数据
    

    filter-Add: 一些复杂的SQL语句也可以转化

    User.query.filter(
    		User.username.in_(['test','test1']),
    		User.password_hash==None
    	).first()
    User.query.filter(
    		not_(User.password_hash==None)
    	).first() ##拥有密码的user
    User.query.filter(
    		or_(not_(User.password_hash==None),User.id>1)
    	).first() ##组合调用
    

    SQLAlchemy中与None的比较会被当成与NULL比较

    修改数据

    调用update方法更新数据

    >>> User.query.filter_by(username="test").update({
    	'password_hash':'test'
    	})
    1
    >>> db.session.commit()
    

    删除数据

    >>> user=User.query.filter_by(username="test").first()
    >>> db.session.delete(user)
    >>> db.session.commit()
    
  • 相关阅读:
    shiro学习详解(开篇)
    好记性不如烂笔头之Maven使用小记
    【转】log4j.properties文件的配置
    undefined和NUll的区别
    select选择框在谷歌火狐和IE样式的不同
    windows.onload和 document.ready区别
    深入理解line-height
    display:none,overflow:hidden,visibility:hidden之间的区别
    diplay:table-cell和伪元素:after方法让图片居中
    弹性布局各种坑爹兼容
  • 原文地址:https://www.cnblogs.com/bay1/p/10982362.html
Copyright © 2011-2022 走看看