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)