Flask->有没有其他方法可以在不提交数据库的情况下使用flask_login login_user?



我注意到,每当我使用login_user时,如果在此之前我没有将所述用户添加到数据库中,它会给我401未授权。有没有一种方法可以在不将用户添加到数据库和401未经授权的情况下使用login_user??这是我的函数,这一切都发生在

@app.route('/Index', methods=['GET', 'POST'])
def Index():
if request.method=='POST':
New_Username = request.form['Username']
New_Password = request.form['Password']
user = bool(Users.query.filter_by(Username=New_Username).first())
if user is not None and user == False:
New_User = Users(Username=New_Username, Password=New_Password)
db.session.add(New_User)
db.session.commit()
login_user(New_User)
print('Works')
return redirect('/Dashboard')
else:
New_User = Users(Username=New_Username, Password=New_Password)
login_user(New_User)
print('Doesnt work')
return redirect('/Dashboard')
else:
return render_template('Index.html', New_User=All_Users)

否。login_user需要一个User类实体。

你使用大写字母是不合常规的,可能会引起一些晦涩难懂的问题。首先,你的Users类有大写的params吗?通常,usernamepassword是小写的。

并且,不需要bool

这里有更传统的外壳、标准User型号等:

from django.contrib.auth.models import User
@app.route('/index', methods=['GET', 'POST'])
def index():
if request.method=='POST':
new_username = request.form['username']
new_password = request.form['password']
user = User.query.filter_by(username=new_username).first()
if not user:
new_user = User(username=new_username, password=new_password)
new_user.save()
db.session.add(new_user)
db.session.commit()
login_user(new_user)
print('Works')
return redirect('/dashboard')
else:
login_user(user)
print('Doesnt work')
return redirect('/dashboard')
else:
# All_Users not defined!
return render_template('index.html', new_user=All_Users)

相关内容

最新更新