Python 使用Flask,注销按钮如何调用注销功能?

Python 使用Flask,注销按钮如何调用注销功能?,python,html,flask,Python,Html,Flask,我正在使用Python Flask构建一个网站。我可以登录,但不能注销。当我单击注销按钮时,它没有响应 注销功能: @bp.route('/logout') def logout(): session.pop('userName') return redirect(url_for('index.html')) 注销按钮的代码: 注销 注销按钮位于文件…\sent\templates\base.html中 注销函数位于文件…\sent\blueprints\auth.py中 我是

我正在使用Python Flask构建一个网站。我可以登录,但不能注销。当我单击注销按钮时,它没有响应

注销功能:

@bp.route('/logout')
def logout():
    session.pop('userName')
    return redirect(url_for('index.html'))
注销按钮的代码:
注销

注销按钮位于文件…\sent\templates\base.html中 注销函数位于文件…\sent\blueprints\auth.py中

我是否需要onclick处理程序来调用Python函数? 我是否需要导入该函数,因为它位于另一个目录中?
或者是我遗漏了什么?

如果您为按钮分配了onclick处理程序,则需要编写Javascrpt来发送AJAX请求,并对响应进行处理。但是,该路由正在执行重定向,而不是返回JSON,因此最好直接将用户指向
/logout
URL。为此,请使用锚定标记而不是按钮:

<a href="{{ url_for('logout') }}">Logout</a>

如果您想使其显示为实际按钮,那么您仍然可以将其设置为实际按钮

例如,使用,您可以简单地将相关类分配给该锚点:

<a href="{{ url_for('logout') }}" class="btn btn-primary">Logout</a>


为什么按钮可以用于登录和注册,但不能用于注销?是因为这些按钮用于表单,而注销是一个独立的功能吗?@thejdah是的,这些按钮可能看起来更像
(也以按钮的形式出现)。放置在表单中,它们会导致表单提交。一个独立的
需要一些Javascript来完成一些事情。我可以创建一个表单,只在其中放置注销按钮吗?@thejdah是的。你可能会侥幸逃脱
。如果表单标记中没有
方法
attrib,则默认为GET。