我在 Python 页面中有一个处理程序,它按照 Tornado Web 服务器的指南编写。我想把这个处理程序放在另一个页面中,总是与 Tornado 的主要 python 页面链接。
这样我可以创建一个新页面,这样我就可以拥有一个不错的项目,而不是数千行的独特页面吗?
非常感谢你。
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 !