python - 在 Flask 中使用 LOGIN_USER() 变得很棘手
问题描述
我是 Flask 的新手,我一直在尝试实现 login_user,但它不起作用。我已经阅读了文档,但我无法让它工作。这是我的模型
class User(db.Model,UserMixin):
__tablename__ = "User"
id = db.Column(db.Integer, primary_key= True)
username = db.Column (db.String, nullable=False)
email = db.Column (db.String, unique=True, nullable=False)
password = db.Column(db.String, nullable=False)
city= db.Column(db.String)
review = db.relationship('Review',backref='User',lazy=True)
def is_active(self):
return self.active
def is_anonymous(self):
return False
def is_authenticated(self):
return True
def get_id(self):
return self.id
和我的登录定义
@app.route("/login", methods= ["POST", "GET"])
def login():
form=LoginForm()
if form.validate_on_submit():
email=form.email.data
password_login= form.password.data
#make sure user exists
user= db.execute('''SELECT * FROM "User" WHERE email = :email''',{"email": email}).fetchone()
if user:
if check_password_hash(user.password,password_login):
login_user(user, form.remember.data)
return redirect(url_for("dashboard"))
return '<h1> Invalid user </h1>'
return(render_template("login.html", form=form))
我在 app.py 中有加载器。我仍然无法确定是否应该将其放入模型中。
@login_manager.user_loader
def load_user(user_id):
try:
return User.query.get(user_id)
except:
return None
我得到了这个错误的大部分
login_user(user, form.remember.data)
File "C:\Users\COMPAQ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\flask_login\utils.py", line 166, in login_user
if not force and not user.is_active:
AttributeError: Could not locate column in row for column 'is_active'
如果错误很明显,我深表歉意,但我仍在努力解决 Flask 登录系统的逻辑问题 提前致谢!
解决方案
我弄错了行,是查询。将其替换为:
user = User.query.filter_by(email=request.form.get('email')).first()
希望它在未来对其他人有所帮助!
推荐阅读
- python - Python - 浏览目录中的所有 xml 文件,将一个元素及其子元素放在另一个 xml 文件中的正确位置
- systemd - systemd - 如何确定服务是在启动时启动还是通过“systemctl restart ...”启动的?
- python - `pip install --upgrade -r requirements.txt` vs 冻结的模块版本
- vb.net - 如何在 vb.net 项目中查找缺少的“句柄”子句?
- repair - Microsoft Access 数据库引擎 2010 经常需要修复
- sql - 在 postgres 中找不到列
- javascript - 在嵌套 iframe 中递归定位元素
- json - Ansible:如何解析循环的注册变量?
- python - 如何在不结束整个程序的情况下退出函数?(Python)
- c - openmpi:printf 不等待 scanf