Python flask登录反复询问用户名
我有以下代码: user.py app.py 登录\u controller.py index.html 据我所知,我把一切都安排好了。然而,登录似乎实际上并没有做任何事情 当前用户仍然是匿名用户。 注册/登录链接仍然显示,而不是我的个人资料链接。 对于站点的其他部分,我在其中设置了@login_required,它仍然会将我重定向到登录页面。 帮助?def get_idself必须是返回id,而不是用户名。试试这个:Python flask登录反复询问用户名,python,flask,flask-login,Python,Flask,Flask Login,我有以下代码: user.py app.py 登录\u controller.py index.html 据我所知,我把一切都安排好了。然而,登录似乎实际上并没有做任何事情 当前用户仍然是匿名用户。 注册/登录链接仍然显示,而不是我的个人资料链接。 对于站点的其他部分,我在其中设置了@login_required,它仍然会将我重定向到登录页面。 帮助?def get_idself必须是返回id,而不是用户名。试试这个: def get_id(self): return self.id
def get_id(self):
return self.id
以下内容以英文写成:
取得身份证
此方法必须返回唯一标识此用户的unicode,并可用于从user_loader回调加载用户。
请注意,如果ID本机是int或
如果是其他类型,则需要将其转换为unicode
在user=user.objectsusername=username之后写入printuser的结果。first@NarnikGamarnik它打印出用户名我的名字:`*调试器PIN:261-357-181 Khushalani,Sagar---[04/Apr/2017 14:49:07]POST/login HTTP/1.1 302-`传递到加载用户id,而不是用户名谢谢@Narnikamarnik。我会试一试,然后回去报告,结果没有什么不同。它仍然保持注销状态。
app = Flask(
__name__,
static_folder='./static',
template_folder='./static/templates'
)
app.config.from_pyfile(CONFIG_FILE)
app.register_blueprint(LOGIN)
@app.before_request
def request_setup():
if current_user.is_authenticated:
g.user = current_user.get_id()
else:
g.user = None
lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login.user_login'
@lm.user_loader
def load_user(username):
return LoginController.get_user(username)
LOGIN = Blueprint('login', __name__)
class LoginController(object):
@staticmethod
def get_user(username):
return User.objects(username=username).first()
@staticmethod
@LOGIN.route('/login', methods=['GET', 'POST'])
def user_login():
if request.method == 'GET':
return render_template('login.html')
username = request.form.get('username')
user = User.objects(username=username).first()
if not user:
flash('User does not exist!', 'error')
return flask.redirect(url_for('home'))
else:
login_user(user)
return flask.redirect(url_for('home'))
{% if current_user.is_authenticated %}
<a class="item">My Profile</a>
<a class="item" href="{{ login.user_logout }}">Logout</a>
{% else %}
<a class="item" id="login_button">Register/Login</a>
{% endif %}
def get_id(self):
return self.id