0

この例をGoogleドキュメントから取ってください

class BrowseHandler(webapp.RequestHandler):

>     def get(self, category, product_id):
>         # Display product with given ID in the given category.
> 
> 
> # Map URLs like /browse/(category)/(product_id) to
> BrowseHandler. application =
> webapp.WSGIApplication([(r'/browse/(.*)/(.*)',
> BrowseHandler)
>                                      ],
>                                      debug=True)
> 
> def main():
>     run_wsgi_app(application)
> 
> if __name__ == '__main__':
>     main()

製品IDがオプションになるようにregxグループを変更するにはどうすればよいですか

つまり、http : //yourdomain.com/categoryという URLが現在の上記の例のブラウズ ハンドラに送信されます。カテゴリの後に製品 ID または少なくとも / を追加する必要があります。

すなわち

http://yourdomain.com/category/

r'/browse/(. )/(. )'

何か案は?

4

2 に答える 2

3

同じハンドラにマッピングされた 2 つの正規表現を使用できます。

class BrowseHandler(webapp.RequestHandler):

    def get(self, category, product_id=None):
        # Display product with given ID in the given category.


# Map URLs like /browse/(category)/(product_id) to
BrowseHandler. application =
webapp.WSGIApplication([(r'/browse/(.*)/(.*)', BrowseHandler),
                        (r'/browse/(.*)', BrowseHandler),
                       ], debug=True)

def main():
    run_wsgi_app(application)

if __name__ == '__main__':
    main()
于 2010-05-19T12:38:09.743 に答える
-1

「?」を追加してみてください。正規表現の終わりの前に:

r'/browse/(.)/(.)?'
于 2010-05-19T11:49:57.303 に答える