当前位置: 首页 > news >正文

东莞网站建设制作哪家好网络维护合同范本

东莞网站建设制作哪家好,网络维护合同范本,网页制作图片怎么居中,wordpress运营数据库(sqlalchemy)多条件查询 前言一、filter、filter_by实现过滤查询1、filter_by()基础查询并且查询(多条件查询) 2、filter()like:模糊查询and:并且查询or:或者查询 二、all(),first(),get(…

数据库(sqlalchemy)多条件查询

    • 前言
    • 一、filter、filter_by实现过滤查询
      • 1、filter_by()
        • 基础查询
        • 并且查询(多条件查询)
      • 2、filter()
        • like:模糊查询
        • and:并且查询
        • or:或者查询
    • 二、all(),first(),get()的使用
    • 三、分页和排序
      • 分页
      • 排序
    • 四、聚合查询(count、sum、avg)
    • 五、关系查询(一对一,一对多)

前言

SQLAlchemy的包使用文档
SQLAlchemy Documentation


这里有跟select相搭配使用的各种方法嘞

上一篇:模型(model)Flask-SQLAlchemy的使用,在这里已经分享了安装以及初步使用SQLAlchemy包。在实际项目中,经常有搜索的功能,这里就分享一下模糊查询的使用

一、filter、filter_by实现过滤查询

1、filter_by()

在文档中可以看到,filter_by()的使用方式
在这里插入图片描述
找到源码可以看到实现逻辑:

    def filter_by(self, **kwargs: Any) -> Self:from_entity = self._filter_by_zero()clauses = [_entity_namespace_key(from_entity, key) == valuefor key, value in kwargs.items()]return self.filter(*clauses)

可以看出,filter_by() 只接受键值对参数,所以 filter_by() 不支持><(大于和小于)和 and_、or_查询

基础查询

查询文章类型相等的

    resource_lists: List[models.Resource] = (models.Resource.query.filter_by(r_type=0 ).all())
并且查询(多条件查询)
# 获取所有博客文章列表
@blog_base_blueprint.route('/search_reousrce', methods=['POST'])
def search_resource():keyword = request.form.get('keyword')type= request.form.get('type')if not keyword or type:return jsonify({'code': 0,'msg': '搜索词/类型不能为空',})resource_lists: List[models.Resource] = (models.Resource.query.filter_by(r_type=0 ).filter_by(title = keyword).all())return jsonify({'code': 0,'msg': 'success','data': {"resource_list": [resource.to_format() for resource in resource_lists]}})

若是或者条件查询,filter_by()方法就不满足不了需求了,需要使用filter()

2、filter()

like:模糊查询

查询标题包含特定词的

keyword = request.form.get('keyword')
resource_lists: List[models.Resource] = (models.Resource.query.filter(models.Resource.title.like('%{}%'.format(keyword) )).all())
and:并且查询
  • 链式调用多个filter条件,每个filter都会在之前的结果集上进行筛选。那并且查询就好处理了,比如:我要查询标题中含有某些关键词并且内容类型为医学文献的:
def search_resource():keyword = request.form.get('keyword')type= request.form.get('type')resource_lists: List[models.Resource] = (models.Resource.query.filter(models.Resource.title.like('%{}%'.format(keyword) )).filter(models.Resource.r_type==type).all())
  • 使用sqlalchemy中的and_实现
from sqlalchemy import and_
def search_resource():keyword = request.form.get('keyword')type= request.form.get('type')resource_lists: List[models.Resource] = (models.Resource.query.filter(and_(models.Resource.title.like('%{}%'.format(keyword) ), models.Resource.r_type==type)).all())
or:或者查询

查询挑剔中含有特定关键词的,或者内容类型为医学指南的:

from sqlalchemy import or_def search_resource():keyword = request.form.get('keyword')type= request.form.get('type')if not keyword :return jsonify({'code': 0,'msg': '搜索词/类型不能为空',})resource_lists: List[models.Resource] = (models.Resource.query.filter(or_(models.Resource.title.like('%{}%'.format(keyword) ), models.Resource.r_type==type)).all())return jsonify({'code': 0,'msg': 'success','data': {"resource_list": [resource.to_format() for resource in resource_lists]}})

二、all(),first(),get()的使用

#获取所有的数据models.Resource.query.all()#获取第一条数据models.Resource.query.first()#需要传递参数,查询数据的主键跟参数一样models.Resource.query.get(3)

三、分页和排序

分页

#跟php差不多,都是使用offset和limit,下面意思是跳过第二条开始查询,然后获取3条记录models.Resource.query.offset(2).limit(3)

排序

#使用order_by方法排序,有desc和asc排序方式,直接可用models.Resource.query.order_by(models.Resource.id.desc()).all()

四、聚合查询(count、sum、avg)

	resource_lists =db.session.query(func.count(models.Resource.id)).all()print(resource_lists)print(resource_lists[0][0])

打印resource_lists可以发现返回值是这样的:
在这里插入图片描述
所以想获取到最终的值需要如上方式处理一下,类似的还有方法sum()、avg()

五、关系查询(一对一,一对多)

新开了一篇,Flas中模型关联实现,点击前往

http://www.yayakq.cn/news/333639/

相关文章:

  • 内蒙古网站建设价格网站创建方案怎么写
  • wordpress网站如何添加栏目宿州城市建设投资网站
  • 爱站官网上海网站营销
  • 惠民县建设局网站wordpress 4.9.4 汉化
  • 孝感网站开发优搏快2022年网站能用的
  • cn域名建设网站需要备案吗布吉网站建设找哪家公司好
  • 国外有哪些优秀的网站关键词推广优化app
  • 适合做网站背景音乐国外网络ip地址
  • 上海seo网站优化公司北京装修价格
  • 南宁网站定制如何做网站的自由撰稿人
  • 建设工程企业资质工作网站龙岗网
  • 宜春网站制作酒厂网站源码
  • 章丘建设局网站网站建设平台怎么样
  • 软件销售网站模板北京百度总部
  • 做网站的上海公司有哪些广东省公共资源交易中心地址
  • 网站开发主要有两个阶段网上有几个购物平台
  • 国外做彩票网站推广是合法的吗室外平台设计
  • 云浮新增病例详情跟我学seo
  • 内网网站建设的亮点特点鲜花网站模板
  • 深圳网站设计很棒 乐云践新崇左网站搭建
  • 自己怎么建个网站赚钱汽车网站营销
  • 做一手房产中介用什么网站好百度seo霸屏软件
  • 网站开发的毕业设计小吃加盟网站大全
  • 哪些网站是做食品广州海珠区有什么大学
  • 建设图片展示网站小型公司网站建设论文
  • 怎样弄免费网站Wordpress 图片左右滑动
  • 网站平台被骗了怎么办陕西网站维护
  • 网站地图怎么使用快速优化工具
  • 永久免费的移动建站平台wordpress同步博客插件
  • 安徽省城乡和建设厅网站云南省建设测量员注册网站