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中元类用法实例
Oct 10 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
Python 类与元类的深度挖掘 II【经验】
May 06 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
Python实现搜索算法的实例代码
Jan 02 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
Python中的变量与常量
Nov 11 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中存储过程、函数的一些问题
2007/02/14 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
Bootstrap精简教程
2015/11/27 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
Python 随机按键模拟2小时
2020/12/30 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
人事专员的职责
2014/02/26 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
高中语文教学反思范文
2016/02/16 职场文书