Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例


Posted in Python onAugust 01, 2019

本文实例讲述了Flask框架重定向,错误显示,Responses响应及Sessions会话操作。分享给大家供大家参考,具体如下:

重定向和错误显示

将用户重定向到另一个端点,使用redirect(), 要提前中止错误请求,请使用abort()函数

from flask import abort, redirect, url_for
@app.route('/')
def index():
  return redirect(url_for('login'))
@app.route('/login')
def login():
  abort(401)
  this_is_never_executed()

默认情况下,会为每个错误代码显示黑白错误页面,如果要自定义错误页面,请使用errorhandler() 装饰器.

Responses

  1. 如果返回了正确类型的响应对象,则直接从视图返回。
  2. 如果是字符串,则使用该数据和默认参数创建响应对象。
  3. 如果返回元组,则元组中的项可以提供额外信息。这样的元组必须是这样的形式,或者至少有一个项必须在元组中。该值将覆盖状态代码,可以是其他标头值的列表或字典。(response, status, headers)或者是(response, headers)

如果要在视图中获取生成的响应对象,可以使用make_response() 函数

假设你有如下视图:

@app.errorhandler(404)
def not_found(error):
  return render_template('error.html'), 404

使用make_response()包含返回表达式,获取响应对象并修改它,然后返回它

@app.errorhandler(404)
def not_found(error):
  resp = make_response(render_template('error.html'), 404)
  resp.headers['X-Something'] = 'A value'
  return resp

Sessions会话追踪

session在cookie的基础上实现的,并以加密方式对cookie进行签名

要使用sessions,必须要设置私钥,以下是简单示例:

from flask import Flask, session, redirect, url_for, escape, request
app = Flask(__name__)
# Set the secret key to some random bytes. Keep this really secret!
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
@app.route('/')
def index():
  if 'username' in session:
    return 'Logged in as %s' % escape(session['username'])
  return 'You are not logged in'
@app.route('/login', methods=['GET', 'POST'])
def login():
  if request.method == 'POST':
    session['username'] = request.form['username']
    return redirect(url_for('index'))
  return '''
    <form method="post">
      <p><input type=text name=username>
      <p><input type=submit value=Login>
    </form>
  '''
@app.route('/logout')
def logout():
  # remove the username from the session if it's there
  session.pop('username', None)
  return redirect(url_for('index'))

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

Python 相关文章推荐
python实现获取序列中最小的几个元素
Sep 25 Python
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
python django 实现验证码的功能实例代码
May 18 Python
Python实现字符串逆序输出功能示例
Jun 24 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
Python切片操作深入详解
Jul 27 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
python实现翻译word表格小程序
Feb 27 Python
python实现QQ邮箱发送邮件
Mar 06 Python
python对csv文件追加写入列的方法
Aug 01 #Python
Django Aggregation聚合使用方法解析
Aug 01 #Python
Flask教程之重定向与错误处理实例分析
Aug 01 #Python
python gdal安装与简单使用
Aug 01 #Python
Django模型修改及数据迁移实现解析
Aug 01 #Python
Django 大文件下载实现过程解析
Aug 01 #Python
python爬虫刷访问量 2019 7月
Aug 01 #Python
You might like
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
php抽象类用法实例分析
2015/07/07 PHP
php查询及多条件查询
2017/02/26 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
document.addEventListener使用介绍
2014/03/07 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Django框架视图介绍与使用详解
2019/07/18 Python
python turtle 绘制太极图的实例
2019/12/18 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
为什么需要版本控制
2016/10/28 面试题
介绍一下UNIX启动过程
2013/11/14 面试题
生物制药专业自我鉴定
2014/02/19 职场文书
出纳会计岗位职责
2014/03/12 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
学习保证书范文
2014/04/30 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书