Python web2py如何注销用户

Python web2py如何注销用户,python,login,web2py,logout,Python,Login,Web2py,Logout,我刚刚开始研究web2py,该方法中的很多东西都是新的,比如对视图使用默认值等等。 我花了好几个小时试图弄清楚如何让人们登录,最后把它放在电脑上 @auth.requires_login() 在控制器方法的开始处。这神奇地带来了一个新用户登录后的注册表。 我不确定我是否完全理解幕后发生的事情,但一步一个脚印 然而,我想提供一个注销按钮,不知道如何实现。显然,我需要以某种方式调用默认注销。因此,我需要向submit表单/按钮添加一个url,并可能创建一个与url匹配的控制器,但是注销的方法是什么

我刚刚开始研究web2py,该方法中的很多东西都是新的,比如对视图使用默认值等等。 我花了好几个小时试图弄清楚如何让人们登录,最后把它放在电脑上

@auth.requires_login()
在控制器方法的开始处。这神奇地带来了一个新用户登录后的注册表。 我不确定我是否完全理解幕后发生的事情,但一步一个脚印

然而,我想提供一个注销按钮,不知道如何实现。显然,我需要以某种方式调用默认注销。因此,我需要向submit表单/按钮添加一个url,并可能创建一个与url匹配的控制器,但是注销的方法是什么样的呢

在user方法中是exposes语句,但不知道它们的意思或如何使用它们。所有这些点使我困惑

我花了很多时间试图弄清楚如何让人们登录

你读过这本书吗?它解释了
@auth.requires_login()
的用法,以及默认的
user()
函数如何公开登录功能(以及如果需要,如何创建专门用于登录的单独操作)。在scaffolding应用程序中,default.py控制器包括以下
user()
函数以公开所有身份验证操作:

def user():
    return dict(form=auth())
在类似“/myapp/default/user/[action]”的URL中,请求的身份验证操作(即URL的最后一个元素)将在request.args[0]中可用。当上述函数调用auth()时,auth
方法从request.args[0]读取操作,然后调用相应的auth方法。如果URL为“/myapp/default/user/login”,
auth()
将最终调用
auth.login()
方法,该方法将返回(并处理)登录表单。如果要创建自己的自定义登录操作,还可以直接调用
auth.login()

类似地,URL“/myapp/default/user/logout”最终将调用
auth.logout()
方法,该方法将注销用户。因此,如果要启用注销,只需生成一个指向注销URL的链接——最好的方法是使用
URL()
函数:

A('Logout', _href=URL('default', 'user', args='logout'))

注意,在scaffolding应用程序中,layout.html视图使用
auth.navbar()
在页面的右上角插入auth-navbar——当用户登录时,该navbar会自动包含一个与上面类似的“注销”链接。

我确实读过在线书籍中的部分。我也在网上买了《Web2pyCookbook》这本书,但我看不出它在哪里说要获得一个登录屏幕,你把装饰器放在一个控制方法之前。如果你查看layout.html中的源代码,没有显示/user/login。但是,如果您查看网页上的源代码,您可以在那里看到它。感谢您的帮助,我仍然认为对于新用户,可能会有一个示例,说明如何在简单的应用程序中添加登录屏幕。在其中的一节中说,“如果访问者未登录,则无法检查权限;访问者将重定向到登录页面,然后返回到需要权限的页面”。因此,装饰程序不仅限制访问,而且如果用户未登录,它们会重定向到登录页面。关于layout.html,正如我在上面的回答中提到的,layout.html包括
auth.navbar()
——是调用
auth.navbar()
生成auth链接(登录、注册、注销等)。它只是一个方便的助手--您不必使用它--您可以生成自己的链接。