使用flask遇到的问题及解决方法

flask在客户端接收到的中文显示乱码

解决:

flask版本2.3.0以上:JSON_AS_ASCII 属性被废弃

app = Flask(name)

app.json.ensure_ascii = False # 解决中文乱码问题

flask版本2.2.5以下:

app = Flask(name)

app.config['JSON_AS_ASCII'] = False # 解决中文乱码问题

RuntimeError: The current Flask app is not registered with this 'SQLAlchemy' instance. Did you forget to call 'init_app', or did you create multiple 'SQLAlchemy' instances?

使用SQLAlchemy将自定义的model类通过flask写入数据库时遇到上述错误;

解决:

排查启动的客户端程序,在启动的manager.py中,引入了app = Flask(name),而在写入数据库中用的db.session(),引用的是之前统一定义的app文件__init__文件的db = SQLAlchemy(app),这样导致声明了两个实例,引发了报错,将manager中的app = Flask(name)替换为app的__init__中的db即可。

url中的转义问题

使用flask框架连接数据库,遇到密码中含有特殊字符'@',在做url解析时会将密码和host切分错误,导致连接失败;

解决:

对'@'做url的转义,变为'%40',问题解决;在使用GET等方法发送请求时也会遇到类似问题,可将特殊符号做 url 转义;

%2C:',' %40:'@' %3A:':' %20:space %5B:'[' %5D:']'

启动flask debug模式报错问题

调试flask时使用debug模式启动报错,但正常启动没问题;

解决:设置 app.run(use_reloader=False),关闭热加载即可。

RuntimeError: Working outside of application context.

this typically means that you attempted to use functionality that needed to interface with the current application object in some way. To solve this, set up an application context with app.app_context(). See the documentation for more information

使用大模型流式输出,向数据库存入对话时,遇到上述报错;

解决:

在存入数据的py函数中添加 with app.app_context():即可,引入的 from app import db, app,要和整个项目保持一致;项目使用SQLAlchemy做数据库管理,引入app和db时要注意保持一致,否则会报错:RuntimeError: Working outside of application context.

复制代码
def dialogue_add(**param):
    with app.app_context():  # 使用app上下文,在使用模型流式输出时,添加该上下文后才能正常存储到数据库
        session = db.session
        odd = Dialogue(**param)
        session.add(odd)
        session.commit()

参考:

(必解决)新版Flask返回中文乱码解决,unicode编码_python3 flask 中文乱码-CSDN博客

GET请求地址中的URL编码[ %2C,%40... ]字符含义_url %40-CSDN博客

unknown option --port python调试Flask后端报错 Debug mode: on-CSDN博客

相关推荐
程序员爱钓鱼35 分钟前
Python编程实战 · 基础入门篇 | 什么是Python
后端·python
程序猿小D36 分钟前
【完整源码+数据集+部署教程】遥感图像道路检测分割系统源码和数据集:改进yolo11-CARAFE
python·yolo·计算机视觉·目标跟踪·数据集·yolo11·遥感图像道路检测分割系统
zy_destiny43 分钟前
【工业场景】用YOLOv8实现人员打电话识别
人工智能·python·深度学习·yolo·机器学习·计算机视觉·目标跟踪
FreeBuf_43 分钟前
Happy DOM曝CVSS 9.4严重RCE漏洞,PoC已公开(CVE-2025-61927)
java·c语言·c++·python·php
C嘎嘎嵌入式开发1 小时前
(10)100天python从入门到拿捏《Python中的数据结构与自定义数据结构》
数据结构·python·算法
程序员杰哥1 小时前
Pytest与Unittest测试框架对比
自动化测试·软件测试·python·测试工具·测试用例·excel·pytest
wxin_VXbishe1 小时前
基于SpringBoot的天天商城管理系统的设计与现-计算机毕业设计源码79506
java·c++·spring boot·python·spring·django·php
睿思达DBA_WGX1 小时前
使用 python-docx 库操作 word 文档(3):读取word文档的内容
python·word
这里有鱼汤1 小时前
别再凭感觉画股票箱体了!用DBSCAN让你的策略更稳、更准、更客观
后端·python
AALoveTouch2 小时前
同程旅行签到脚本
python