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中使用摄像头实现简单的延时摄影技术
Mar 27 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
详解Python自建logging模块
Jan 29 Python
如何用python整理附件
May 13 Python
python+Splinter实现12306抢票功能
Sep 25 Python
超简单使用Python换脸实例
Mar 27 Python
Python datetime包函数简单介绍
Aug 28 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
Python实现智慧校园自动评教全新版
Jun 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
一个查看session内容的函数
2006/10/09 PHP
php基础知识:控制结构
2006/12/13 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
JS实现切换标签页效果实例代码
2013/11/01 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python抓取网页中的图片示例
2014/02/28 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
通用C#笔试题附答案
2016/11/26 面试题
网络技术专业推荐信
2014/02/20 职场文书
开服装店计划书
2014/08/15 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书