2011-08-08 45 views
0

兩種方法:帶有webapp的App Engine CRUD - 關於結構化的想法?

# 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)將導致更大量的代碼進行重複在那些處理程序中,以及一個龐大的路線列表。另一方面,我覺得這將有一個更乾淨,更好的結構,即一個處理所有人的方法。

對此有何看法?

+2

順便說一句,「/note/(.+)/」用於查看,而「/note/(.+)/delete」用於刪除更爲標準。 –

回答

2

讓所有共享代碼子類的處理程序都有一個基本處理程序(其子類爲webapp.RequestHander)。

這樣你們都有正確分離的路由和處理程序,可以分解出常見的代碼。