我在 django 上运行 api 时遇到错误“[Errno 5] 输入/输出错误”

问题描述 投票:0回答:3

Django API 代码:

def post(self,request)-> JsonResponse:
        try:
            self.email = request.data['email']
            self.mobile = request.data['mobile']
            self.password = request.data['password']
        except Exception as e:
            return JsonResponse(create_failure('400',f"invalid payload {e}","fail"))
        try:
            res = {}
            jwt_token = ''
            if self.email:
                password = Customer.objects.get(email=self.email).password
                username  = Customer.objects.get(email=self.email).username
                print(password)
                if check_password(self.password,password) :
                    jwt_token = make_jwt_token({'username':username})
                else:
                    return JsonResponse(create_failure('500',f"Invalid password","fail"))
            elif self.mobile:
                password = Customer.objects.get(mobile=self.mobile).password
                username  = Customer.objects.get(mobile=self.mobile).username
                if check_password( password,self.password) :
                    jwt_token = make_jwt_token({'username':username})
                else:
                    return JsonResponse(create_failure('500',f"Invalid password","fail"))
            res['token'] = jwt_token
        except Exception as e:
            return JsonResponse(create_failure('400',f"error in verifying the password {e}","fail"))
        return JsonResponse(create_success('User Verified',res))

在邮递员上运行时出错

{
    "StatusCode": "400",
    "Message": "error in verifying the password [Errno 5] Input/output error",
    "ReplyCode": "fail",
    "Data": []
}

上面的代码在本地计算机上运行良好,但是当我将其部署到服务器时,它会产生此错误。我正在使用 cpanel 作为使用 CentOS 的托管

python django linux cpanel
3个回答
8
投票

解决了,我只需从代码中删除打印即可。


8
投票

如果您的服务器没有地方放置打印语句,则可能会发生这种情况。

例如,我在一个终端窗口中运行一台服务器,然后不知何故该窗口关闭了,但服务器仍在运行。有 2 个选项,具体取决于您的情况:

  1. 杀死进程。启动新服务器:

    sudo kill -9 $(sudo lsof -t -i:8000)
    。 (或搜索“查找端口并终止进程 [YOUR_OS]”以查找特定于操作系统的信息。更多详细信息

  2. 通过管道传输命令输出:

    python MY_SCRIPT.py >/dev/null
    更多详细信息


0
投票

这是什么意思——服务器无处放置打印语句。服务器上有空间。 @富和

© www.soinside.com 2019 - 2024. All rights reserved.