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的SQLAlchemy框架使用入门
Apr 29 Python
python复制文件的方法实例详解
May 22 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
python设置随机种子实例讲解
Sep 12 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
Python对wav文件的重采样实例
Feb 25 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
Python实现老照片修复之上色小技巧
Oct 16 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
php字符串分割函数用法实例
2015/03/17 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
列举Python中吸引人的一些特性
2015/04/09 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python常见工厂函数用法示例
2018/03/21 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
药学专业大专生的自我评价
2013/12/12 职场文书
护士演讲稿范文
2014/01/05 职场文书
四年级评语大全
2014/04/21 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
国庆节活动总结
2014/08/26 职场文书
新闻报道稿范文
2015/07/23 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
使用pandas模块实现数据的标准化操作
2021/05/14 Python