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