0

我在 Python 页面中有一个处理程序,它按照 Tornado Web 服务器的指南编写。我想把这个处理程序放在另一个页面中,总是与 Tornado 的主要 python 页面链接。

这样我可以创建一个新页面,这样我就可以拥有一个不错的项目,而不是数千行的独特页面吗?

非常感谢你。

4

1 回答 1

0
class BaseHandler(tornado.web.RequestHandler):
    @tornado.web.removeslash
    def get_current_user(self):
         return self.get_secure_cookie("mechtari")
    @property 
    def db(self):
        if not hasattr(BaseHandler,"_db"):
            _db = pymongo.Connection().essog
            return _db
    @property
    def fs(self):
        if not hasattr(BaseHandler,"_fs"):
            _fs = gridfs.GridFS(self.db)
            return _fs

现在我要做的所有事情都将继承自这个处理程序:

class LoginHandler(BaseHandler):
    def post(self):
    # do a database search, so i need to connect to database, so no need to the database everytime and make the connection.


class AchatsHandler(BaseHandler):
    @tornado.web.authenticated
    def get(self):
        # render me a page that requires a user to be authentificated, so i always use the base handler

并且在 url 规范中,您只需要精确的类名称以将它们绑定到 url。

urls = [
(r"/login", handlers.LoginHandler),
(r"/achats/*", handlers.AchatsHandler),
]

看,在 url 字典中没有 BaseHandler !

于 2012-10-31T15:27:22.690 回答