Python Flask Routing

Python Flask Routing

Flask Routing

Modern web applications use meaningful URLs to help users. Users are more likely to like a page and come back if the page uses a meaningful URL they can remember and use to directly visit a page.

Use the route() decorator to bind a function to a URL.

def index():
return 'Index Page'

def hello():
return 'Hello, World'

Variable Rules

You can add variable sections to a URL by marking sections with <variable_name>. Your function then receives the <variable_name> as a keyword argument. Optionally, you can use a converter to specify the type of the argument like <converter:variable_name>.

from markupsafe import escape

def show_user_profile(username):
# show the user profile for that user
return 'User %s' % escape(username)

def show_post(post_id):
# show the post with the given id, the id is an integer
return 'Post %d' % post_id

def show_subpath(subpath):
# show the subpath after /path/
return 'Subpath %s' % escape(subpath)

Converter types:

Unique URLs / Redirection Behavior

def projects():
return 'The project page'

def about():
return 'The about page'

The canonical URL for the projects endpoint has a trailing slash. It's similar to a folder in a file system. If you access the URL without a trailing slash, Flask redirects you to the canonical URL with the trailing slash.

The canonical URL for the about endpoint does not have a trailing slash. It's similar to the pathname of a file. Accessing the URL with a trailing slash produces a 404 "Not Found" error.