Flask教程之重定向与错误处理实例分析


Posted in Python onAugust 01, 2019

本文实例讲述了Flask教程之重定向与错误处理。分享给大家供大家参考,具体如下:

Flask类有一个redirect()方法. 当我们调用它时, 它会返回一个响应对象并且按指定的状态码将用户重定向到另一个位置.

redirect()方法的原型如下:

Flask.redirect(location, statuscode, response)

在上面的函数中,

  • location 我们要重定向的URL位置
  • statuscode 状态码会在http头中发送给浏览器, 默认为302
  • response 用这个参数来初始化响应对象

下面是一些标准的状态码:

  • HTTP_300_MULTIPLE_CHOICES
  • HTTP_301_MOVED_PERMANENTLY
  • HTTP_302_FOUND
  • HTTP_303_SEE_OTHER
  • HTTP_304_NOT_MODIFIED
  • HTTP_305_USE_PROXY
  • HTTP_306_RESERVED
  • HTTP_307_TEMPORARY_REDIRECT

重定向的状态码默认是302, 也就是已找到(found).

在下面的例子中, redirect()方法用于当登录失败的时候再次展示登录页面.

from flask import Flask, redirect, url_for, render_template, request
# Initialize the Flask application
app = Flask(__name__)
@app.route('/')
def index():
  return render_template('log_in.html')
@app.route('/login',methods = ['POST', 'GET'])
def login():
  if request.method == 'POST' and
  request.form['username'] == 'admin' :
  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)

Flask类有个abort()方法, 参数包括一个错误状态码.

Flask.abort(code)
  • 400 错误请求
  • 401 未授权请求
  • 403 禁止
  • 404 找不到资源
  • 406 不可接受
  • 415 未知媒体类型
  • 429 太多请求

我们来对上面代码中的login()函数做一点修改. 如果我们在登录失败时不重新展示登录页, 而是展示"未授权"页面, 那么我们需要把重定向那行代码替换为abort(401).

from flask import Flask, redirect, url_for, render_template, request, abort
app = Flask(__name__)
@app.route('/')
def index():
  return render_template('log_in.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)
  else:
   return redirect(url_for('index'))
@app.route('/success')
def success():
  return 'logged in successfully'
if __name__ == '__main__':
  app.run(debug = True)

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
python正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
python测试驱动开发实例
Oct 08 Python
python3音乐播放器简单实现代码
Apr 20 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
python中open函数的基本用法示例
Sep 07 Python
DjangoWeb使用Datatable进行后端分页的实现
May 18 Python
python gdal安装与简单使用
Aug 01 #Python
Django模型修改及数据迁移实现解析
Aug 01 #Python
Django 大文件下载实现过程解析
Aug 01 #Python
python爬虫刷访问量 2019 7月
Aug 01 #Python
用Cython加速Python到“起飞”(推荐)
Aug 01 #Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 #Python
flask框架jinja2模板与模板继承实例分析
Aug 01 #Python
You might like
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
设定php简写功能的方法
2019/11/28 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
Web服务器框架 Tornado简介
2014/07/16 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
幼师自荐信
2013/10/26 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
运动会广播稿500字
2014/01/28 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
八月迷情观后感
2015/06/11 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python