HiveBrain v1.2.0
Get Started
← Back to all entries
patternpythonMinor

Regexes for Google App Engine

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
engineregexesgoogleappfor

Problem

I want to review the URL routing for my appengine webapp:

routes = [
        (r'/', CyberFazeHandler),
        (r'/vi/(eyes|mouth|nose)', CyberFazeHandler),
        (r'/realtime', RealtimeHandler),
        (r'/task/refresh-user/(.*)', RefreshUserHandler),
        ('/ai', FileUploadFormHandler),
        ('/serve/([^/]+)?', ServeHandler),
        ('/upload', FileUploadHandler),
        ('/generate_upload_url', GenerateUploadUrlHandler),
        ('/file/([0-9]+)', FileInfoHandler),
        ('/file/set/([0-9]+)', SetCategoryHandler),
        ('/file/([0-9]+)/download', FileDownloadHandler),
        ('/file/([0-9]+)/success', AjaxSuccessHandler),
        ]

app = webapp2.WSGIApplication(routes,
            debug=os.environ.get('SERVER_SOFTWARE', '').startswith('Dev'
            ))


Does it look alright to you? Can you recommend an improvement? Should I use the 'r prefix to my regexes?

Solution

Have you considered using named Route templates instead of capturing regular expressions? It could make the code more readable. Consider

Route("/task/refresh-user/", RefreshUserHandler)


instead of

(r'/task/refresh-user/(.*)', RefreshUserHandler)


for example. (Of course, I don't know what kwargs RefreshUser actually wants, but you can change the angle-bracketed part to the appropriate name.)

Code Snippets

Route("/task/refresh-user/<username>", RefreshUserHandler)
(r'/task/refresh-user/(.*)', RefreshUserHandler)

Context

StackExchange Code Review Q#5817, answer score: 6

Revisions (0)

No revisions yet.