SQLAlchemy关于None, 10054, None报错

在使用SQLAlchemy进行多线程数据访问时遇到'Connection aborted.'错误,具体表现为ConnectionResetError 10054。错误发生在requests库的发送请求过程中,远程主机关闭了现有的连接。问题可能源于并发控制或服务器资源限制。
摘要由CSDN通过智能技术生成

‘Connection aborted.’, ConnectionResetError(10054, ‘远程主机强迫关闭了一个现有的连接。’, None, 10054, None)
在这里插入图片描述
这个是我配置的session会话,在测试多线程进行访问数据的时候出现
Traceback (most recent call last):
File “E:\Python3.6\lib\site-packages\requests\adapters.py”, line 445, in send
timeout=timeout
File “E:\Python3.6\lib\site-packages\urllib3\connectionpool.py”, line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File “E:\Python3.6\lib\site-packages\urllib3\util\retry.py”, line 367, in increment
raise six.reraise(type(error), error, _stacktrace)
File “E:\Python3.6\lib\site-packages\urllib3\packages\six.py”, line 685, in reraise
raise value.with_traceback(tb)
File “E:\Python3.6\lib\site-packages\urllib3\connectionpool.py”, line 600, in urlopen
chunked=chunked)
File “E:\Python3.6\lib\site-packages\urllib3\con

这个错误通常在使用Flask-SQLAlchemy或类似的SQLAlchemy扩展时出现,当你尝试访问NoneType对象的'encoding'属性时。这可能是因为你在试图操作数据库连接之前,数据库连接还没有被正确初始化,或者在一些预期应该返回连接对象的方法中返回了None。 以下是可能导致此错误的一些常见原因和解决方案: 1. **未初始化**:确保在应用启动时已经正确初始化了数据库连接。在Flask中,通常在app.py中的`create_app`函数中配置DB,例如: ```python from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'your_database_connection_string' db = SQLAlchemy(app) ``` 2. **查询错误**:在调用数据库操作之前,检查查询是否成功执行。确保你有适当的查询语句,并且在处理结果之前,查询返回了有效的数据。 3. **异常处理**:在可能抛出None的地方添加异常处理,以便捕获并处理这类错误。例如: ```python try: result = db.session.query(SomeModel).first() except sqlalchemy.exc.NoResultFound: # Handle the case when no data is found ``` 4. **检查代码逻辑**:确保在访问连接编码之前,你已确保连接对象不是None。例如,在使用`request.get_json()`后: ```python data = request.get_json() if request.is_json else None if data is not None: encoded_data = data.encode('utf-8') ``` 如果以上方法都不能解决问题,请提供更多的上下文,比如具体的代码片段,这样我能更准确地帮你定位问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值