首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提升ValueError(“反序列化需要会话”)

提升ValueError(“反序列化需要会话”)
EN

Stack Overflow用户
提问于 2020-04-27 21:43:37
回答 1查看 976关注 0票数 1

事实上,我正在处理的是一个非常奇怪的错误。奇怪的是,当我将所有文件上传到EC2服务器时,当我在pyCharm的本地主机上运行相同的项目时,它工作得很好。我得到了以下错误。

该项目运行良好,因此我能够托管应用程序,但是,当我发送post请求时,会得到HTTP错误代码500作为响应,并在控制台中出现以下错误。

如果有人能帮我改正这个错误,我将不胜感激

代码语言:javascript
复制
    Traceback (most recent call last):
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 2464, in __cal                                                                                                l__
    return self.wsgi_app(environ, start_response)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_                                                                                                app
    response = self.handle_exception(e)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask_restful/__init__.py", line 2                                                                                                72, in error_router
    return original_handler(e)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 1867, in handl                                                                                                e_exception
    reraise(exc_type, exc_value, tb)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/_compat.py", line 38, in rer                                                                                                aise
    raise value.with_traceback(tb)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_                                                                                                app
    response = self.full_dispatch_request()
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 1952, in full_                                                                                                dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask_restful/__init__.py", line 2                                                                                                72, in error_router
    return original_handler(e)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 1821, in handl                                                                                                e_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/_compat.py", line 38, in rer                                                                                                aise
    raise value.with_traceback(tb)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 1950, in full_                                                                                                dispatch_request
    rv = self.dispatch_request()
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/app.py", line 1936, in dispa                                                                                                tch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask_restful/__init__.py", line 4                                                                                                68, in wrapper
    resp = resource(*args, **kwargs)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask/views.py", line 89, in view
    return self.dispatch_request(*args, **kwargs)
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/flask_restful/__init__.py", line 5                                                                                                83, in dispatch_request
    resp = meth(*args, **kwargs)
  File "/home/ubuntu/yAPI/resources/r_user.py", line 50, in post
    user = user_schema.load(request.get_json())
  File "/home/ubuntu/yAPI/yenv/lib/python3.6/site-packages/marshmallow_sqlalchemy/schema/load                                                                                                _instance_mixin.py", line 89, in load
    raise ValueError("Deserialization requires a session")
ValueError: Deserialization requires a session

在我的应用程序中,这是错误开始的地方。

代码语言:javascript
复制
class UserRegister(Resource):

    @classmethod
    def post(cls):
        #        the 'load' function in marshmallow will use the data to create usermodel object
        user = user_schema.load(request.get_json())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-27 22:38:20

正如评论中所讨论的,以下是解决方案,以便对其他人有所帮助:

您需要定义一个会话并将其传递给load函数,如下所示:

代码语言:javascript
复制
from sqlalchemy import engine #thanks to your comment
from sqlalchemy.orm import scoped_session, sessionmaker



class UserRegister(Resource):

    @classmethod
    def post(cls):
        #        the 'load' function in marshmallow will use the data to create usermodel object
        sess = scoped_session(sessionmaker(bind=engine))
        user = user_schema.load(request.get_json(), sess)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61460319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档