网站首页学无止境PYTHON
python框架Tornado之二Tornado 攻略(10)第三方认证&调试模式和
发布时间:2014-07-25 17:29:46编辑:songlin阅读(813)
- class GoogleHandler(tornado.web.RequestHandler, tornado.auth.GoogleMixin):
- @tornado.web.asynchronous
- def get(self):
- if self.get_argument("openid.mode", None):
- self.get_authenticated_user(self._on_auth)
- return
- self.authenticate_redirect()
- def _on_auth(self, user):
- if not user:
- self.authenticate_redirect()
- return
- # Save the user with, e.g., set_secure_cookie()
第三方认证
Tornado 的 auth
模 块实现了现在很多流行站点的用户认证方式,包括 Google/Gmail、Facebook、Twitter、Yahoo 以及 FriendFeed。这个模块可以让用户使用 这些站点的账户来登陆你自己的应用,然后你就可以在授权的条件下访问原站点的一些服 务,比如下载用户的地址薄,在 Twitter 上发推等。
下面的例子使用了 Google 的账户认证,Google 账户的身份被保存到 cookie 当中,以便 以后的访问使用:
请查看 auth
模块的代码文档以了解更多的细节。
调试模式和自动重载
如果你将 debug=True
传递给 Application
构 造器,该 app 将以调试模式 运行。在调试模式下,模板将不会被缓存,而这个 app 会监视代码文件的修改, 如果发现修改动作,这个 app 就会被重新加载。在开发过程中,这会大大减少 手动重启服务的次数。然而有些问题(例如 import 时的语法错误)还是会让服务器 下线,目前的 debug 模式还无法避免这些情况。
调试模式和 HTTPServer
的多进程模式不兼容。在调试模式下,你必须将 HTTPServer.start
的参数设为不大于 1 的数字。
调试模式下的自动重载功能可以通过独立的模块 tornado.autoreload
调用, 作为测试运行器的一个可选项目,tornado.testing.main
中也有用到它。
本文来源地址:http://sebug.net/paper/books/tornado/