零碎知识
程序终止
from flask import abort
# 终止代码执行
@app.route('/abort/')
def err():
# 终止代码执行,其实是向系统抛出了特定异常
# 系统捕获后,按照既有的处理方案进行异常的处理
# 可以指定错误信息
abort(404, '自定义错误信息')
return 'ok'
错误定制
# 定制错误处理,装饰器参数为指定的错误状态码
@app.errorhandler(404)
def page_not_found(e):
return '出错了,大哥!'
# 定制错误处理,装饰器参数为指定的异常的类型
@app.errorhandler(DatabaseError)
def special_exception_handler(error):
return 'Database connection failed', 500
重定向
from flask import redirect, url_for
@app.route('/new/')
def new():
return '这是新的路由'
@app.route('/welcome/<name>/')
def welcome(name):
return 'Hello {}'.format(name)
# 重定向
@app.route('/redirect/')
def old():
# return '原来的内容'
# return redirect('/new/')
# 根据视图函数名,反向构造路由地址
# return url_for('new')
# 构造无参路由
# return redirect(url_for('new'))
# 构造带参路由,参数写在函数中,多出来的参数会作为GET参数传递
return url_for('welcome', name='goudan', pwd='123456')
# 构造完整路由地址(带协议主机和端口)
# return url_for('new', _external=True)
使用
redirect
可以进行请求的重定向url_for`函数可以根据视图函数名称反向构造出路由地址