Tipos na URL

from flask import Flask
app = Flask(__name__)


@app.route('/blog/<int:postID>')
def show_blog(postID):
    return 'Blog Number %d' % postID


@app.route('/rev/<float:revNo>')
def revision(revNo):
    return 'Revision Number %f' % revNo


if __name__ == '__main__':
    app.run()

Problemas com ‘/’ na URL

from flask import Flask
app = Flask(__name__)


# NOTE: somente a URL '/flask' funciona
@app.route('/flask')
def hello_flask():
    return 'Hello Flask'


# NOTE: ambas URLs '/python' e '/python/' funcionam
@app.route('/python/')
def hello_python():
    return 'Hello Python'


if __name__ == '__main__':
    app.run()

URL dinâmica

from flask import Flask, redirect, url_for
app = Flask(__name__)


@app.route('/admin/')
def hello_admin():
    return 'Hello Admin'


@app.route('/guest/<guest>')
def hello_guest(guest):
    return 'Hello %s as Guest' % guest


@app.route('/user/<name>')
def hello_user(name):
    if name == 'admin':
        return redirect(url_for('hello_admin'))
    else:
        return redirect(url_for('hello_guest', guest=name))


if __name__ == '__main__':
    app.run(debug=True)

Redirecionamento de URL

"""
HTTP Codes
    * 400 − for Bad Request
    * 401 − for Unauthenticated
    * 403 − for Forbidden
    * 404 − for Not Found
    * 406 − for Not Acceptable
    * 415 − for Unsupported Media Type
    * 429 − Too Many Requests
"""

from flask import Flask, redirect, url_for, render_template, request, abort
# Initialize the Flask application
app = Flask(__name__)


@app.route('/')
def index():
    return render_template('login.html')


@app.route('/login', methods=['POST', 'GET'])
def login():
    if request.method == 'POST':
        if request.form['username'] == 'admin':
            return redirect(url_for('success'))
        else:
            abort(401)
        return redirect(url_for('success'))
    return redirect(url_for('index'))


@app.route('/success')
def success():
    return 'logged in successfully'


if __name__ == '__main__':
    app.run(debug=True)