python web开发-flask中的response,cookies,session对象使用详解
2018-03-21 13:35
886 查看
Response响应对象:
当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式1. 如果返回的是一个合法的响应对象,它会从视图直接返回。2. 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。3. 如果返回的是一个元组,且元组中的元素可以提供额外的信息。这样的元组必须是(response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。4. 如果上述条件均不满足,Flask 会假设返回值是一个合法的 WSGI 应用程序,并转换为一个请求对象。
以上从引用官网的一段话,其实简单来说就是所有的响应都会生成一个合法的响应对象,我们平常用的最多的就是直接返回字符串或是返回一个template。最终都会被flask处理成response对象。
Cookies对象:
Cookies用于在客户端存储一些信息, 当flask应用响应用户请求时可以设置cookies的值,当用户请求flask应用时可以获取cookies的值。
简单来说,设置cookies的方式为:
responseObj.set_cookies(“xxx”) ,此处的responseObj是一个response的实例,xxx是cookies的名称
获取cookies的方式为
request.cookies.get(“xxx”),此处的request是全局request对象,xxx是cookies的名称
下面通过一个例子来说明cookies的使用
1. 创建一个设置cookies的方法:@app.route("/setCookies")
def setCookies():
res = make_response("this page will set a cookies")
res.set_cookie("myCookies","my first cookies")
return res
注:需要import make_response方法
2. 创建一个获取cookies的方法@app.route("/getCookies")
def getCookies():
myCookies = request.cookies.get("myCookies")
return myCookies
3. 测试应用
访问 /setCookies 方法
访问/getCookies方法
Session对象:
它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名。这意味着用户可以查看你 Cookie 的内容,但却不能修改它,除非用户知道签名的密钥。
Session可以通过session[‘xxx’]=’yyy’进行设置,其中xxx是key值,yyy是session的value。
通过session.pop(‘xxx’,none)把key是xxx的session移除
一般用session进行用户是否登录的验证
下面举例来说明:
1. 设置session
使用下面的代码@app.route("/setSession")
def setSession():
session["userName"] = "my session"
return session["userName"]使用session时要先设置app_secret不然会报错:
RuntimeError: The session is unavailable becauseno secret key was set. Set the secret_key on the application to somethingunique and secret.
在调用此代码之前加上secret_key的设置app.secret_key = "1234"安全起见,secret_key要设置的复杂一些,这里演示用就简单设置了。
2. 验证session
代码如下:@app.route("/checkSession")
def checkSession():
if "userName" in session:
return "userName exist"
else:
return "userName lost"
3. 移除session
代码如下:@app.route("/removeSession")
def removeSession():
session.pop("userName",None)
return "remove session!"4. 验证
访问/setSession
验证session 访问/checkSession
证明session存在
下一步,移除session
然后我们再次验证session。
Session已丢失
4000
当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式1. 如果返回的是一个合法的响应对象,它会从视图直接返回。2. 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。3. 如果返回的是一个元组,且元组中的元素可以提供额外的信息。这样的元组必须是(response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。4. 如果上述条件均不满足,Flask 会假设返回值是一个合法的 WSGI 应用程序,并转换为一个请求对象。
以上从引用官网的一段话,其实简单来说就是所有的响应都会生成一个合法的响应对象,我们平常用的最多的就是直接返回字符串或是返回一个template。最终都会被flask处理成response对象。
Cookies对象:
Cookies用于在客户端存储一些信息, 当flask应用响应用户请求时可以设置cookies的值,当用户请求flask应用时可以获取cookies的值。
简单来说,设置cookies的方式为:
responseObj.set_cookies(“xxx”) ,此处的responseObj是一个response的实例,xxx是cookies的名称
获取cookies的方式为
request.cookies.get(“xxx”),此处的request是全局request对象,xxx是cookies的名称
下面通过一个例子来说明cookies的使用
1. 创建一个设置cookies的方法:@app.route("/setCookies")
def setCookies():
res = make_response("this page will set a cookies")
res.set_cookie("myCookies","my first cookies")
return res
注:需要import make_response方法
2. 创建一个获取cookies的方法@app.route("/getCookies")
def getCookies():
myCookies = request.cookies.get("myCookies")
return myCookies
3. 测试应用
访问 /setCookies 方法
访问/getCookies方法
Session对象:
它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名。这意味着用户可以查看你 Cookie 的内容,但却不能修改它,除非用户知道签名的密钥。
Session可以通过session[‘xxx’]=’yyy’进行设置,其中xxx是key值,yyy是session的value。
通过session.pop(‘xxx’,none)把key是xxx的session移除
一般用session进行用户是否登录的验证
下面举例来说明:
1. 设置session
使用下面的代码@app.route("/setSession")
def setSession():
session["userName"] = "my session"
return session["userName"]使用session时要先设置app_secret不然会报错:
RuntimeError: The session is unavailable becauseno secret key was set. Set the secret_key on the application to somethingunique and secret.
在调用此代码之前加上secret_key的设置app.secret_key = "1234"安全起见,secret_key要设置的复杂一些,这里演示用就简单设置了。
2. 验证session
代码如下:@app.route("/checkSession")
def checkSession():
if "userName" in session:
return "userName exist"
else:
return "userName lost"
3. 移除session
代码如下:@app.route("/removeSession")
def removeSession():
session.pop("userName",None)
return "remove session!"4. 验证
访问/setSession
验证session 访问/checkSession
证明session存在
下一步,移除session
然后我们再次验证session。
Session已丢失
4000
相关文章推荐
- Python-在CentOS7上使用nginx+uwsgi部署Flask框架开发的Web项目
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
- JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用
- python web开发-flask调试器的使用
- Python Flask-web表单使用详解
- python web开发-flask中带斜线/的url和不带斜线/的url区别详解
- Flask —— 使用Python和OpenShift进行即时Web开发
- Day 3: Flask —— 使用Python和OpenShift进行即时Web开发
- 【转载】Python Web 框架: 使用 TurboGears 和 Python 开发 Web 站点
- JavaWeb开发之Servlet中的线程问题及使用ServletConfig对象操作Servlet中的参数
- IOS开发NSBundle对象使用详解
- 对session对象在web开发中的创建以及sessionId生成并返回客户端的运行机制.
- Ubuntu下使用Python+flask+MySQL的架构搭建Web框架
- web中常有的几个pageContext,request,session,application,response等对象
- 移动设备web开发插件iScroll的使用详解
- 从零开始,使用python快速开发web站点(1)
- JSP开发:Session对象使用环境及主要方法
- JSP内置对象的使用 request,response,session(一)
- Python Web 框架, 使用 Django 和 Python 开发 Web 站点
- 使用 Django 和 Python 开发 Web 站点