0

Tornado Web サーバーのガイドラインに従って記述された Python ページにハンドラーがあります。このハンドラーを別のページに配置し、常に 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 に答える