本文实例讲述了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
如果要在视图中获取生成的响应对象,可以使用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程序设计有所帮助。
与Cookie不同,会话数据存储在服务器上。 会话是客户端登录到服务器并注销的时间间隔。 需要在此会话中进行的数据存储在服务器上的临时目录中。 与每个客户端的会话分配一个会话ID。 会话数据存储在cookie顶部,服务器以加密方式签名。 对于这种加密,Flask应用程序需要一个定义。 会话对象也是一个包含会话变量和关联值的键值对的字典对象。 例如,要设置会话变量,请使用语句 - 要删除会话变量,请
本文向大家介绍Laravel框架Request、Response及Session操作示例,包括了Laravel框架Request、Response及Session操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel框架Request、Response及Session操作。分享给大家供大家参考,具体如下: Request操作 Response操作 Session操作 更多关
我正在尝试使用虚拟环境和wsgi配置flask以使其正常工作,但Apache不断给我此错误: [星期二11月13 13:23:55.179153 2018][wsgi:错误][pid 11819][x. x. x. x: xxxx]app.session_interface=自己。_get_interface(应用程序) [11月13日星期二13:23:55.179160 2018][wsgi:e
本文向大家介绍Yii 框架控制器创建使用及控制器响应操作示例,包括了Yii 框架控制器创建使用及控制器响应操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii 框架控制器创建使用及控制器响应操作。分享给大家供大家参考,具体如下: Yii 框架控制器创建使用 在根目录下的controllers目录下创建控制器HelloController.php: 访问地址:basic/web/i
本文向大家介绍django框架创建应用操作示例,包括了django框架创建应用操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了django框架创建应用操作。分享给大家供大家参考,具体如下: 18.1.5 安装Django 安装Django 18.1.6 在Django 中创建项目: /django/mysite/learning_log/learning_log 18.1.7
本文向大家介绍java实现响应重定向发送post请求操作示例,包括了java实现响应重定向发送post请求操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现响应重定向发送post请求操作。分享给大家供大家参考,具体如下: 关于重定向我们用的比较多的还是redirect:重定向,默认发送的get请求。 但有时候请求地址必须为post请求,比如security登录就只能接收p