Python 2.7 Flask未从模型加载用户id

Python 2.7 Flask未从模型加载用户id,python-2.7,login,flask-sqlalchemy,Python 2.7,Login,Flask Sqlalchemy,我正在尝试使用flask编写登录应用程序 我的View.py看起来像 @lm.user_loader def load_user(id): if id is None or id == 'None': id =-1 print 'ID: %s, leaving load_user' % (id) return Users.query.get(int(id)) 另一种登录方法是 @app.route('/login',methods=['GET','POST'

我正在尝试使用flask编写登录应用程序

我的View.py看起来像

@lm.user_loader
def load_user(id):

   if id is None or id == 'None': 
       id =-1
   print 'ID: %s, leaving load_user' % (id)
   return Users.query.get(int(id))
另一种登录方法是

@app.route('/login',methods=['GET','POST'])
def login():
    form = LoginForm()
    if request.method == 'GET':
        return render_template('login.html', 
        title = 'Sign In',\
        form = form)


    username = form.username
    password = form.password
    user = Users(nickname = form.username, email = 'sanjeev_yadav248@yahoo.com', role =       
    ROLE_USER)
    if user is None:
        flash('Username or Password is invalid' , 'error')
        return redirect(url_for('login'))
    remember_me = False
    if 'remember_me' in session:
        remember_me = session['remember_me']
        session.pop('remember_me', None)
    login_user(user)
    flash("Logged in successfully.")
    return redirect(request.args.get("next") or url_for("index"))
我的model(model.py)类是

class Users(db.Model):
     id = db.Column(db.Integer, primary_key = True)
     nickname = db.Column(db.String(64), unique = True)
     email = db.Column(db.String(120), index = True, unique = True)
     role = db.Column(db.SmallInteger, default = ROLE_USER)
     posts = db.relationship('Post', backref = 'author', lazy = 'dynamic')

     def is_authenticated(self):
             return True

     def is_active(self):
            return True

     def is_anonymous(self):
           return False

     def get_id(self):
           return unicode(self.id)

     def __repr__(self):
           return '<User %r>' % (self.nickname)    
类用户(db.Model):
id=db.Column(db.Integer,主键=True)
昵称=db.Column(db.String(64),unique=True)
email=db.Column(db.String(120),index=True,unique=True)
role=db.Column(db.SmallInteger,默认值=role\u USER)
posts=db.relationship('Post',backref='author',lazy='dynamic')
def已通过身份验证(自身):
返回真值
def处于活动状态(自):
返回真值
def是匿名的(自我):
返回错误
def get_id(自身):
返回unicode(self.id)
定义报告(自我):
返回“”%(自我昵称)
我的DatabaseUsers表具有id、昵称、emailid和角色。
这个昵称将sanjeev作为一个值,并与之关联id,例如3。但是当我运行它时,load_user()方法id并没有被填充。i、 e它是“无”。当我在load_用户方法中硬编码id时,其工作正常。例如,如果我将return Users.query.get(3)放入。如果你们对此有任何线索,请告诉我。

你们能修复你们的缩进吗。我已经通过你们提供的链接找到了可能的副本。你能告诉我我缺少什么特别的东西吗?你确定你的
login
方法缩进正确吗?你有没有通过考试?您的代码有一些基本问题;对于初学者来说,
username=form.username
没有做您认为它在做的事情。form.username正在从浏览器返回“sanjeev”。我有一个硬编码的昵称,只是为了确保传递的值正确。登录方法的缩进是正确的,我可以在浏览器中看到成功登录的消息。我已经仔细阅读了这篇教程,这就是为什么要问这些问题。