【已解决】Flask项目报错AttributeError: ‘Request‘ object has no attribute ‘is_xhr‘

文章目录

报错及分析

报错代码

python 复制代码
  File "/www/kuaidi/6f47274023d4ad9b608f078c76a900e5_venv/lib/python3.6/site-packages/flask/json.py", line 251, in jsonify
    if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:
AttributeError: 'Request' object has no attribute 'is_xhr'

分析

这个问题是后端代码中的问题。

根据错误日志,'Request' 对象没有属性 'is_xhr'。这是因为在较新的 Flask 版本中,'is_xhr' 属性已被废弃。为了解决这个问题,可以使用 'is_ajax' 属性来代替 'is_xhr'。

可以将代码中的 not request.is_xhr 改为 not request.is_ajax,这样应该可以解决这个错误。

将以下部分:

python 复制代码
if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:

更改为:

python 复制代码
if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_ajax:

此时发现代码中并没有这句,其实这句代码是在flask代码中。比如观察本报错,路径为/www/kuaidi/6f47274023d4ad9b608f078c76a900e5_venv/lib/python3.6/site-packages/flask/json.py,修改这个文件中的对应行即可。

python 复制代码
  File "/www/kuaidi/6f47274023d4ad9b608f078c76a900e5_venv/lib/python3.6/site-packages/flask/json.py", line 251, in jsonify
    if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:
AttributeError: 'Request' object has no attribute 'is_xhr'

解决方案

必要的解决方法

将文件(文件路径看具体报错)
/www/kuaidi/6f47274023d4ad9b608f078c76a900e5_venv/lib/python3.6/site-packages/flask/json.py中的

python 复制代码
if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:

更改为:

python 复制代码
if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_ajax:

可能有用的解决方法

观察库的版本是否合适,比如调整Flask库,Werkzeug库。

相关推荐
飞Link6 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗7 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
在世修行7 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
On The Road :9 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静9 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静9 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗10 小时前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真10 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指111010 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
云和数据.ChenGuang12 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节