App Engine CRUD с webapp - мысли о структурировании? - PullRequest
0 голосов
/ 08 августа 2011

Два подхода:

# routes: (passed to WSGIApplication)
[..snip..]
('/note/add', AddNoteHandler),
('/note/delete/(.+)', DeleteNoteHandler),
('/note/view/(.+)', ViewNoteHandler),
('/note', ListNotesHandler),
[..snip..]

.. против ..

('/note/(.*)', NoteHandler)

# which moves all the code from many RequestHandlers to one..
# ..but with a lot of branching inside, e.g.

class NoteHandler(webapp.RequestHandler):
    def get(self, params):
        params = params.split('/')
        action = params[0]
        id = params[1]
        # start switching by action

     def post(self, params):
        params.split('/'):
            # POST case

Наличие отдельных обработчиков для каждой операции CRUD на некоторых object (в данном случае note)приведет к тому, что в этих обработчиках будет повторяться намного больше кода, и к огромному списку маршрутов.С другой стороны, я чувствую, что у этого была бы намного более чистая, более приятная структура, чем это мог бы сделать один обработчик для всех грубых.

Есть какие-нибудь мысли по этому поводу?

1 Ответ

2 голосов
/ 08 августа 2011

Имеют все обработчики, которые совместно используют код, подкласс базового обработчика (какие подклассы webapp.RequestHander).

Таким образом, вы оба правильно разделите маршруты и обработчики и сможете исключить общий код.

...