升级FlaskSQLAlchemy解决排序问题

在使用FlaskSQLAlchemy进行数据库操作时,遇到分页排序功能偶发性失效的问题,始终显示第一页数据。通过查看SQL日志,发现查询无误。在排查无果后,发现是SQLAlchemy版本过低(1.4.0),升级到最新版本(1.4.15)后,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到了一个很奇怪的问题,我有一个比较大的表格,以前用Pagination出来分页显示,一切工作正常,最近有人提出一个需求,要求我能用不同的列出来排序,结果发现分页这个功能发神经了,经常偶尔工作偶尔不工作,不管点击哪一页,永远显示第一页数据

打开SQLAlchemy的日志看到的SQL查询永远是

app.config['SQLALCHEMY_ECHO'] = True

Select top 25 ****

查了很多资料也没什么头绪,

最后看看自己的SQLAlchemy版本是1.4.0而当前的最近版本是1.4.15,于是尝试了一下升级

(base) root@W1021B1S73:/mnt/d/WorkFiles/my_app_protype# pip install -U SQLAlchemy
Collecting SQLAlchemy
  Downloading SQLAlchemy-1.4.15-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 172 kB/s
Requirement already satisfied, skipping upgrade: importlib-metadata; python_version < "3.8" in /root/miniconda3/lib/python3.7/site-packages (from SQLAlchemy) (3.7.3)
Requirement already satisfied, skipping upgrade: greenlet!=0.4.17; py
Flask SQLAlchemy 是一个用于在 Flask 应用中使用 SQLAlchemy 的扩展。SQLAlchemy 是一个 Python 的 SQL 工具包和对象关系映射(ORM)库,它提供了一种高级的数据库访问方式,使得操作数据库更加方便和灵活。 使用 Flask SQLAlchemy,你可以在 Flask 应用中轻松地定义数据库模型、进行数据库迁移、执行数据库查询和操作等。它将 SQLAlchemy 的功能集成到 Flask 框架中,提供了一种更加便捷的方式来处理数据库相关的任务。 要使用 Flask SQLAlchemy,首先需要安装它。可以使用 pip 命令进行安装: ``` pip install flask_sqlalchemy ``` 安装完成后,在 Flask 应用中导入并初始化 Flask SQLAlchemy 扩展: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接字符串' db = SQLAlchemy(app) ``` 其中,`app.config['SQLALCHEMY_DATABASE_URI']` 是数据库的连接字符串,用于连接到数据库。你需要根据自己的数据库配置来设置该值。 接下来,你可以定义数据库模型,例如: ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return f'<User {self.username}>' ``` 在上述代码中,我们定义了一个名为 `User` 的模型,它包含了 `id`、`username` 和 `email` 这三个字段。`db.Column` 用于定义字段的类型和约束。 接下来,你可以使用 Flask SQLAlchemy 进行数据库操作,例如插入数据、查询数据等。具体的操作可以参考 Flask SQLAlchemy 的文档和 SQLAlchemy 的文档。 需要注意的是,Flask SQLAlchemy 会自动管理数据库会话,并自动处理数据库连接、事务等细节,使得数据库操作更加简洁和安全。 希望以上信息对你有所帮助!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值