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

falsk模型-flask_sqlalchemy增删改查

1、增、删、改

@home_bp.route('/useradd')
def user_add():users = []for i in range(10,20):user = User()user.name = '冰冰' + str(i)user.age = 20+iusers.append(user)try:db.session.add_all(users)db.session.commit()return jsonify({'code':1,'info':'success'})except Exception as e:db.session.rollback()return jsonify({'code':0,'info':str(e)})

#删
@home_bp.route('/userdel')
def user_del():user = User.query.first() # 查询第一条数据db.session.delete(user)try:db.session.commit()return jsonify({'code':1,'info':'success'})except Exception as e:db.session.rollback()return jsonify({'code':0,'info':str(e)})

 改

# 改:修改数据
#    找到要修改的数据,然后修改
@home_bp.route('/userupdate/')
def user_update():u = User.query.first()  # 查询第一条数据u.age = 1000db.session.commit()return jsonify({'code':1,'info':'success'})

2、查

(1)all(): 返回所有数据,返回列表

    users = User.query.all()print(users, type(users))  # <class 'list'>print(users[0].name)  #冰冰01print(User.query, type(User.query))  # <class 'flask_sqlalchemy.query.Query'>

(2) filter() : 过滤,得到查询集,类似SQL中的where

    users = User.query.filter(User.age==20)users = User.query.filter(User.age>20)  # 可以用于非等值操作print(list(users))  # [冰冰20]

 (3) count(): 统计查询集(User.query.filter()中的数据条数

     users = User.query.filter()print(users.count())  # 20

(4)filter_by() : 用于等值操作的过滤

users = User.query.filter_by(age=20)

(5)get():查询到对应主键的数据对象

    user = User.query.get(8)print(user, type(user))  # User对象 <class 'App.models.User'>print(user.name, user.age)  # 获取数据的属性

(6)limit() : 前几条:offset() : 跳过前几条

   users = User.query.offset(3).limit(4)print(list(users))

(7)排序

    users = User.query.order_by('age')  # 升序users = User.query.order_by(desc('age'))  # 降序

(8)and_,or_,not_

     users = User.query.filter(User.age>20, User.age<25)  # 且,常用users = User.query.filter(and_(User.age>20, User.age<25))  # 且users = User.query.filter(or_(User.age>25, User.age<20))  # 或users = User.query.filter(not_(or_(User.age>25, User.age<20)))  # 非

(9) 模糊查找,类似SQL中的like

users = User.query.filter(User.name.contains('3'))

(10) in_(): 其中之一

users = User.query.filter(User.age.in_([10, 20, 30, 40, 50]))

(11) startswith() : 以某子串开头,endswith() : 以某子串结尾

    users = User.query.filter(User.name.startswith('冰'))  #users = User.query.filter(User.name.endswith('2'))

(12)__gt__: 大于

users = User.query.filter(User.age.__gt__(25))

http://www.lryc.cn/news/2380522.html

相关文章:

  • K8S详解(5万字详细教程)
  • STL编程之vector
  • BI是什么意思?一文讲清BI的概念与应用!
  • [ 计算机网络 ] 深入理解TCP/IP协议
  • 微软开放代理网络愿景
  • UDP三种通信方式
  • 4-5月份,思科,华为,微软,个别考试战报分享
  • 计算机网络-HTTP与HTTPS
  • 信号波形发生器电路Multisim仿真
  • 深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践
  • 医学影像辅助诊断系统开发教程-基于tensorflow实现
  • 前端单点登录
  • Spring AI 介绍
  • onlyoffice 源码 调试说明 -ARM和x86双模式安装支持
  • EXCEL在一列数据前统一添加负号
  • 从零开始打造个人主页:HTML/CSS/JS实战教程
  • UEFI Spec 学习笔记---33 - Human Interface Infrastructure Overview---33.2.6 Strings
  • 高等数学基础(牛顿/莱布尼茨公式)
  • Node.js路径处理指南:如何安全获取当前脚本目录路径
  • RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试
  • 2025年渗透测试面试题总结-华顺信安[实习]安全服务工程师(题目+回答)
  • 按键精灵ios/安卓辅助工具高级函数OcrEx文字识别(增强版)脚本开发介绍
  • Unity3D HUD UI性能优化方案
  • 掌握Git:版本控制与高效协作指南
  • VsCode和AI的前端使用体验:分别使用了Copilot、通义灵码、iflyCode和Trae
  • 交叉熵损失函数,KL散度, Focal loss
  • php、laravel框架下如何将一个png图片转化为jpg格式
  • 足式机器人经典控制常用的ROS库介绍
  • 在tp6模版中加减法
  • 【Part 3 Unity VR眼镜端播放器开发与优化】第一节|基于Unity的360°全景视频播放实现方案