零碎知识

程序终止

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`函数可以根据视图函数名称反向构造出路由地址

results matching ""

    No results matching ""