-1
我想用flask web框架創建一個功能性登錄表單。我正在使用Google數據存儲。目前,我收到以下錯誤。'NoneType'對象沒有'password'屬性
'NoneType' object has no attribute 'password'
另外,我不知道我已經在用戶模型中使用的id
屬性。可能是服務器無法識別每個用戶的ID。有點困惑。任何幫助表示讚賞。
我鑑於models.py文件:
import datetime
from google.appengine.api import memcache
from google.appengine.api import users
from google.appengine.ext import db
from google.appengine.ext import ndb
class User(ndb.Model):
id = ndb.StringProperty()
username = ndb.StringProperty()
email = ndb.StringProperty()
password = ndb.StringProperty()
joined_at = ndb.DateTimeProperty()
updated_at = ndb.DateTimeProperty()
is_admin = ndb.BooleanProperty(default=False)
# Flask-Login integration
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return false
def get_id(self):
return self.id
forms.py文件:
class LoginForm(Form):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
main.py:
from flask import Flask, g, flash, render_template, url_for, redirect
from flask_login import LoginManager, login_user
import models
import forms
@app.route('/login', methods=['GET', 'POST'])
def login():
form = forms.LoginForm()
if form.validate_on_submit():
try:
user = models.User.exists(username = form.username.data)
except models.DoesNotExist:
flash("Your email does not match", "error")
else:
if user.password == form.password.data:
login_user(user)
flash("You've been logged in!", "success")
return redirect(url_for('index'))
else:
flash("Your password does not match!", "error")
return render_template('login.html', form=form)
在登錄視圖中執行代碼後,我使用用戶名和密碼登錄;然而,在嘗試之後,它顯示'AttributeError:'模塊'對象沒有屬性'DoesNotExist'' –
請編輯你的問題並解釋一點。 –