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实现按任意键继续/退出的功能
Aug 19 Python
用matplotlib画等高线图详解
Dec 14 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
python3 实现的对象与json相互转换操作示例
Aug 17 Python
python set集合使用方法解析
Nov 05 Python
Python 多进程、多线程效率对比
Nov 19 Python
python如何构建mock接口服务
Jan 28 Python
pytorch 中autograd.grad()函数的用法说明
May 12 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
Vue Socket.io源码解读
2018/02/07 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
django 常用orm操作详解
2017/09/13 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
Django权限机制实现代码详解
2018/02/05 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
业务员薪酬管理制度
2014/01/15 职场文书
食品安全汇报材料
2014/08/18 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
政风行风评议整改方案
2014/09/15 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
2015年底工作总结范文
2015/05/15 职场文书