Flask-sqlalchemy对于以10为底的int无效文字:“无”

问题描述

所以我创建了一个db.model,并使用Flask-Login创建了一个登录系统,一切似乎都可以正常工作,现在突然之间,它给出了“ ValueError:int()的无效文字,基数为10: '没有' ”。显然没有任何内容的东西正在传递,但是我看不到在哪里。有人可以帮忙吗? 这是我突出显示的代码段,据说它们导致了我的问题:

return Users.query.get(int(user_id))

return render_template('Index.html',New_User=All_Users)

这两个是以下代码段的一部分:

@login_manager.user_loader
def load_user(user_id):
     return Users.query.get(int(user_id))


def Index():
if request.method=='POST':
    New_Username = request.form['Username']
    New_Password = request.form['Password']
    user = Users.query.filter_by(Username=New_Username).first()
    if not user:
        New_User = Users(Username=New_Username,Password=New_Password)
        db.session.add(New_User)
        db.session.commit()
        login_user(New_User)
        return redirect('/Dashboard')
    else:
        return render_template('Index.html',New_User=All_Users)
else:
        return render_template('Index.html',New_User=All_Users)

整个回溯:

File "E:\Python\Lib\site-packages\flask\app.py",line 2464,in __call__
return self.wsgi_app(environ,start_response)

File "E:\Python\Lib\site-packages\flask\app.py",line 2450,in wsgi_app
response = self.handle_exception(e)
File "E:\Python\Lib\site-packages\flask\app.py",line 1867,in handle_exception
reraise(exc_type,exc_value,tb)
File "E:\Python\Lib\site-packages\flask\_compat.py",line 39,in reraise
raise value
File "E:\Python\Lib\site-packages\flask\app.py",line 2447,in wsgi_app
response = self.full_dispatch_request()
File "E:\Python\Lib\site-packages\flask\app.py",line 1952,in full_dispatch_request
rv = self.handle_user_exception(e)
File "E:\Python\Lib\site-packages\flask\app.py",line 1821,in handle_user_exception
reraise(exc_type,line 1950,in full_dispatch_request
rv = self.dispatch_request()
File "E:\Python\Lib\site-packages\flask\app.py",line 1936,in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "run.py",line 56,in Index
return render_template('Index.html',New_User=All_Users)
File "E:\Python\Lib\site-packages\flask\templating.py",line 136,in render_template
ctx.app.update_template_context(context)
File "E:\Python\Lib\site-packages\flask\app.py",line 838,in update_template_context
context.update(func())
File "E:\Python\Lib\site-packages\flask_login\utils.py",line 379,in _user_context_processor
return dict(current_user=_get_user())
File "E:\Python\Lib\site-packages\flask_login\utils.py",line 346,in _get_user
current_app.login_manager._load_user()
File "E:\Python\Lib\site-packages\flask_login\login_manager.py",line 318,in _load_user
user = self._user_callback(user_id)
File "run.py",line 30,in load_user
    def __repr__(self):
        return f'{self.Username}'
 
@login_manager.user_loader
def load_user(user_id):
    return Users.query.get(int(user_id))
 
 
 
@app.route('/Logout')
@login_required

解决方法

当您在登录名上查询Users模型时,您的user_loader会将用户返回到您的“ / login”视图功能或调用login_user()的任何位置。查询数据库时,如果存在404(因此找不到用户),则返回None。您已尝试使用if not user:...处理此问题,但您应该尝试使用if user is Noneif user==None甚至将错误作为默认值并说出if user is not None: #code for logging in。然后,您的视图函数将处理从查询返回None的数据库。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...